home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HK2ANL.BAS Copyrigit(C) T.Komura / 家計簿システム HK /
- 30 ' / Version 1 /
- 31 ' Version 4.0 1992.08.04-1992.09.14 / 分析プログラム /
- 32 ' 4.0a 1992.10.11 エンゲル係数基数を収入計から支出計に修正
- 33 'HK Version 1.0 1993.01.01 公開バージョン
- 34 ' Version 1.1 1993.08.04 分析条件ウインドウを12ドットフォント化
- 35 ' Version 1.3 1994.01.04 月次処理追加
- 36 ' Version 1.3 1994.01.04 月次統計処理追加
- 37 ' Version 1.4 1994.11.11 月間レポート印刷で合計金額が1月ずれるのを修正
- 38 ' V2.0 L10 1995.06.13 Version 2.0
- 100 '------------------------------------------------------------------
- 120 CLEAR ,,,,1024,300*1024
- 165 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 CONSOLE 0,24,0:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 255 'ウインドウ関係座標配列
- 256 G=7:B=50
- 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
- 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
- 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 267 DIM MD_SB#(10465),MD_SW#(10465),ANLW#(16440),CAUT#(2000):'max : HELP window
- 268 'デ-タ配列
- 280 DIM ITEM$(20),ITEMC(20),SMOPT(10,3),MESH$(20),IMSH(15)
- 282 DIM MX$(20),MX#(20),DYN$(18),DYN#(18),DRM$(16),GDT#(6,31)
- 284 DIM GDYY(31*12),GDYM$(31*12),GDYE$(31*12)
- 295 DIM DOC$(2000) :'HELPデータ
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 325 GOSUB *分析モード読み取り
- 326 GOSUB *メッシュデータ定義
- 330 'CLS:COLOR 7:PRINT int((int(((639-0+1)+7)/8)*(465-55+1)*4+8-1)/8)
- 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449)
- 370 ON ERROR GOTO *ERROR
- 400 GOSUB *MCREAD:GOSUB *DCLOCKREAD
- 440 '
- 510 CTRLB1=17:'コントロールボタン個数
- 515 CTRLB2=15
- 524 HKANL =4 :'検索ボタン番号
- 526 HKANLEND=10:'終了ボタン番号
- 540 DOCF$="\HK2anl.HLP"
- 600 SMODE=1'
- 800 PRTCD=1:'FMPR:PRTCD=0 ESC/P:PRTCD=1
- 980 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *SEFFECT1
- 1010 MESN=1:GOSUB *MESDSP
- 1020 GOSUB *本日の日付
- 1030 SMODC=7:GOSUB *分析モード表示
- 1035 SDAYD$=SDAY$:GOSUB *SDAY表示
- 1040 MOUSE 1,320,64,1
- 1050 MCN=1:GOSUB *MCDSET
- 1055 MESN=2:GOSUB *MESDSP
- 1060 SMODE=1:SWNO=11:BSNDOFF=1:GOTO *S06
- 1100 *メイン選択
- 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
- 1130 SWPASS=0:G=1:GOSUB *MCSELECT
- 1140 IF SWNO<0 THEN SWNO=13
- 1150 ' HK2 記入 検索 分析 CLDR 設定 日付 時計 HELP 終了 SEL 実行 取消
- 1155 ON SWNO GOTO *S01,*S02,*S02,*S02,*S02,*S02,*S03,*S03,*S07,*S09,*S06,*S04,*S05
- 1160 GOTO 1100:STOP
- 1190 '
- 1200 *S06:'モード変更 --------------------------------------------------
- 1510 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 1515 MESN=18:GOSUB *SNDMSG
- 1520 GOSUB *モード選択
- 1530 IF SMODSEL=0 THEN 1625
- 1550 IF SMODE=9 THEN 1610
- 1560 CDTSET=0:GOSUB *分析条件設定
- 1570 IF ANLCAN=0 THEN 1600
- 1575 SMODSEL=0:SMODC=7:GOSUB *分析モード表示
- 1580 MES2OFF=0:GOTO 1625
- 1590 '
- 1600 GOSUB *分析結果画面消去
- 1605 GOSUB *分析条件表示:CDTSET=1
- 1610 MESN=13:GOSUB *MESDSP:MESN=16:GOSUB *SNDMSG
- 1620 MES2OFF=1
- 1625 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 1630 GOTO *メイン選択
- 1690 '
- 1700 *S05:'取消 ---------------------------------------------------------
- 1710 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 1720 IF SMODSEL=1 THEN 1750
- 1730 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 1740 FOR II=1 TO 5000:NEXT II:GOTO 1760
- 1750 GOSUB *分析条件消去:SMODSEL=0
- 1751 ANLF=0
- 1755 SMODC=7:GOSUB *分析モード表示
- 1760 MES2OFF=0
- 1770 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 1780 GOTO *メイン選択
- 1790 '
- 1920 '
- 2000 *S04:'実行 --------------------------------------------------------
- 2010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2020 IF SMODSEL=1 THEN 2100
- 2030 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 2040 FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
- 2090 '
- 2100 ON SMODE GOSUB *AN01,*AN02,*AN03,*AN04,*AN05,*AN06,*AN07,*AN08,*AN09
- 2110 IF SMODE=3 THEN 2236
- 2120 MESN=14:GOSUB *SNDMSG
- 2236 ANLF=1:SMODC=7:GOSUB *分析モード表示
- 2240 MES2OFF=0
- 2460 SMODSEL=0
- 2470 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2480 GOTO *メイン選択
- 2490 '
- 2500 '*S07:'SDAY切り換え------------------------------------------------
- 2510 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2520 IF SDAYC=0 THEN SDAYX$=SDAY$
- 2530 MESN=22:GOSUB *MESDSP
- 2540 SDAYC=1-SDAYC
- 2550 IF SDAYC=1 THEN SDAY$="01" ELSE SDAY$=SDAYX$
- 2551 SDAY=VAL(SDAY$):IF SDAY=1 THEN SDAYC=1
- 2555 GOSUB *SDAY表示
- 2560 MES2OFF=0:WAIT SWAIT
- 2570 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2580 GOTO *メイン選択
- 2590 '
- 6000 *S01:'About HK2---------------------------------------------------'
- 6010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6020 MESN=1:GOSUB *MESDSP
- 6030 GOSUB *ABOUT表示
- 6060 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6070 GOTO *メイン選択
- 6080 '
- 6100 *S03:'Digital Clock ----------------------------------------------'
- 6110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6120 MESN=20:GOSUB *MESDSP
- 6130 GOSUB *DGCLOCK
- 6160 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6170 GOTO *メイン選択
- 6180 '
- 6200 *S07:'Help -------------------------------------------------------'
- 6210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6220 MESN=4:GOSUB *MESDSP
- 6230 GOSUB *HKHELP
- 6260 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6270 GOTO *メイン選択
- 6280 '
- 7900 '
- 8000 *S02:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 8010 IF SWNO=HKANL THEN GOTO *メイン選択
- 8020 G=1:B=HKANL:BST(G,B)=0:GOSUB *BTN_ONOFF
- 8025 G=1:B=SWNO :BST(G,B)=1:GOSUB *BTN_ONOFF
- 8110 MESN=9:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
- 8120 INTERVAL OFF:GOSUB *SEFFECT2
- 8130 ON SWNO-1 GOTO *S021,*S022,*S02,*S024,*S025
- 8150 '
- 8160 *S021:RUN "HK2in.bas"
- 8170 *S022:RUN "HK2src.bas"
- 8180 *S024:RUN "HK2cld.bas"
- 8190 *S025:RUN "HK2cfg.bas"
- 8940 '
- 9000 *S09:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=HKANLEND:BST(G,B)=1:GOSUB *BTN_ONOFF
- 9060 '
- 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 9130 INTERVAL OFF:GOSUB *SEFFECT2
- 9140 RUN "HK2.BAS"
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10105 LINE(0,463)-(639,479),PSET,0,BF
- 10115 SYMBOL(0,465),MES$,.75!,.75!,CM
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA "家計簿システム HK2 [分析]モード"
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "分析モードを選んでください。"
- 10230 DATA 2, 23, 7, 0, 0 :'--- 03
- 10235 DATA "●印の分析条件を設定してください。"
- 10240 DATA 2, 23, 5, 0, 1 :'--- 04
- 10245 DATA "HKHELP★分析モードの説明を表示しています。 頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA ""
- 10260 DATA 2, 23, 6, 0, 1 :'--- 06
- 10265 DATA "この分析モードでは、指定した分析条件は無効です。"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "分析開始年月が分析終了年月よりも大きくなっています。 訂正してください。"
- 10280 DATA 2, 23, 6, 0, 0 :'--- 08
- 10285 DATA "分析終了年月をもう少し小さく設定してください。"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA "★★★しばらくお待ちください....."
- 10300 DATA 2, 23, 6, 0, 0 :'--- 10
- 10305 DATA "この分析モードでは、指定した分析項目は無効です。分析項目を選択し直して下さい。"
- 10310 DATA 2, 23, 6, 0, 0 :'--- 11
- 10315 DATA "分析項目が指定されていません。 分析項目を選んでください。"
- 10320 DATA 2, 23, 7, 0, 0 :'--- 12
- 10325 DATA "分析条件ファイルを保存しますか? 保存する--[OK] 保存しない--[NG]"
- 10330 DATA 2, 23, 7, 0, 1 :'--- 13
- 10335 DATA "分析条件を確認して[実行]ボタンを押してください。"
- 10340 DATA 2, 23, 6, 0, 1 :'--- 14
- 10345 DATA "分析モードを選んでください。"
- 10350 DATA 2, 23, 6, 0, 1 :'--- 15
- 10355 DATA "分析開始年月の家計簿ファイルがありません。"
- 10360 DATA 2, 23, 6, 0, 1 :'--- 16
- 10365 DATA "分析終了年月の家計簿ファイルがありません。"
- 10370 DATA 2, 23, 4, 0, 1 :'--- 17
- 10375 DATA "★分析実行中!! しばらくお待ちください。"
- 10380 DATA 2, 23, 6, 0, 1 :'--- 18
- 10385 DATA "分析の結果該当するデータが有りませんでした。"
- 10390 DATA 2, 23, 7, 0, 1 :'--- 19
- 10395 DATA "分析終了! [▲前頁][▼次頁]で頁切替え。 [取消]で分析終了。"
- 10400 DATA 2, 23, 4, 0, 1 :'--- 20
- 10405 DATA "★統計演算処理実行中! しばらくお待ちください。"
- 10410 DATA 2, 23, 7, 0, 1 :'--- 21
- 10415 DATA "マウスで内容を見たい日付のグラフ(白い点)をクリックしてください。 終了:[取消]"
- 10420 DATA 2, 23, 4, 0, 1 :'--- 22
- 10425 DATA "★月次処理開始日を変更します。"
- 10430 DATA 2, 23, 6, 0, 1 :'--- 23
- 10435 DATA "統計データファイルをオールクリアしますか? クリアする--[OK] クリアしない--[NG]"
- 10600 *SEFFECT1'////////////////////////////////////////////////////////
- 10605 SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
- 10610 SCREEN 1,0,2,1:GOSUB *表紙表示
- 10612 SCREEN 1,1,3,1:
- 10620 FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
- 10621 ' LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
- 10622 LINE(0,240-II)-(639,240+II),PSET,0,BF
- 10623 NEXT II
- 10630 SCREEN 1,0,1,0:INTERVAL ON
- 10640 SCREEN 0
- 10645 RETURN
- 10650 '
- 10700 *SEFFECT2'////////////////////////////////////////////////////////
- 10712 SCREEN 1,1,3,1:
- 10720 FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
- 10721 LINE(0,240+II)-(639,240-II),PSET,1,B
- 10723 NEXT II
- 10730 MESN=9:GOSUB *MESDSP
- 10740 RETURN
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "goyuku" :' 4 ごゆっくり
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "DOUZO" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ v1.4 DAMEY0-->DAMEYO 誤記修正
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索 'v1.3 bugfix 93.12.27
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
- 12515 READ MNDN :'当月の日数
- 12516 IF DY>MNDN THEN DY=MNDN :'V1.3!
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 12550 '
- 12600 *年月日変更: 'v1.3 bugfix 93.12.27
- 12601 GOSUB *WEEKN
- 12602 DY=DY+DDEF
- 12604 IF DY>MNDN THEN DY=1 :MDEF=+1
- 12606 IF DY<1 THEN DY=31 :MDEF=-1
- 12610 MN=MN+MDEF
- 12620 IF MN>12 THEN MN=MN-12 :YDEF=+1
- 12630 IF MN<1 THEN MN=12+MN :YDEF=-1
- 12640 YR=YR+YDEF
- 12650 IF YR<0 THEN YR=10000+YR
- 12660 IF YR>9999 THEN YR=YR-10000
- 12665 GOSUB *WEEKN
- 12668 DY$=RIGHT$(STR$(100+DY),2)
- 12670 MN$=RIGHT$(STR$(100+MN),2)
- 12680 YR$=RIGHT$(STR$(10000+YR),4)
- 12690 RETURN
- 12695 '
- 12700 *本日の日付
- 12705 DEF FONT "システム 12ドット"
- 12710 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 12720 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 12730 TY$=RIGHT$(STR$(TY),4)
- 12740 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 12750 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 12760 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 12770 TYMD$=TY$+"."+TM$+"."+TD$
- 12780 LINE(475,5)-(560,17),PSET,0,BF
- 12790 SYMBOL(476,6),TYMD$,.75!,.75!,7
- 12800 SYMBOL(542,6),WKM$,.75!,.75!,CW
- 12810 RETURN
- 12820 '
- 14000 'マウス,ウインドウ関係サブルーチン集 v1.0 1995.05.14
- 14010 '--------------------------------------------------
- 14020 '
- 14030 'マウスカーソル形状セット v1.0 1994.02.13
- 14040 *MCDSET
- 14050 MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
- 14060 RETURN
- 14070 *MCREAD
- 14080 RESTORE *MCDATA
- 14090 FOR II=1 TO 3
- 14100 FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
- 14110 READ MC_X(II),MC_Y(II)
- 14120 FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
- 14130 FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
- 14140 NEXT II
- 14150 RETURN
- 14160 *MCDATA
- 14170 '指 ////////////////////////////////////////
- 14171 DATA 0,0
- 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
- 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
- 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
- 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
- 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
- 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
- 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
- 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
- 14180 'コーヒー///////////////////////////////////
- 14181 DATA 7,7
- 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
- 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
- 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
- 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
- 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
- 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
- 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
- 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
- 14190 '待った //////////////////////////////////////
- 14191 DATA 7,7
- 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
- 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
- 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
- 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
- 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
- 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
- 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
- 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
- 14200 '
- 14210 *MCDRAG 'ドラッグ -----------------------------------------------
- 14220 MOUSE 1,X_M,Y_M,1 :'現在位置にカーソルを設定
- 14225 MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
- 14230 MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
- 14235 GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
- 14238 X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
- 14239 Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
- 14240 MOUSE 4,X1,Y1,X2,Y2 :'最大移動域の設定
- 14245 GOSUB *MD_WLINED
- 14250 IF MOUSE(2,0)=-1 THEN 14245 :'枠移動
- 14255 LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC :'枠線消去
- 14260 PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB# :'旧ウインドウ背景表示
- 14265 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB# :'新ウインドウ背景保持
- 14270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW# :'新ウインドウ描画
- 14275 MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
- 14280 *MD_WLINED
- 14285 MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10) :'移動量取得
- 14290 W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
- 14295 W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
- 14300 LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC :'枠線移動
- 14305 LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
- 14310 MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
- 14315 MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
- 14320 RETURN
- 14400 '------------------------------------------------------------------
- 14405 *ボタン座標読み取り
- 14410 RESTORE *ボタン座標:READ SWGN
- 14415 FOR G=1 TO SWGN
- 14420 READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 14425 FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
- 14430 NEXT G
- 14435 RETURN
- 14500 '-----------------------------------------------------------------
- 14505 *BTN_ONOFF:'ボタンON_OFF表示
- 14510 IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
- 14515 BSC=1:BSB=15
- 14520 X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
- 14521 Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
- 14522 CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
- 14523 CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
- 14530 IF BSNDOFF=1 THEN 14540 :' WAIT SWAIT\10+1:GOTO 14540
- 14535 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
- 14540 BSNDOFF=0:RETURN
- 14600 '-----------------------------------------------------------------
- 14610 *MCSELECT:'マウスボタン選択
- 14620 SWERC=0:SWNO=0 :'リセット
- 14630 *クリック待ち
- 14640 IF MOUSE(2,0)=-1 THEN 14680 :'左クリック入力待ち
- 14650 IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN :'右クリックで終了
- 14660 IF MCKEY=1 THEN GOTO 14830 :'MCKEY=1: マウススキャン中断、キー入力受付
- 14670 GOTO *クリック待ち
- 14680 X_M=MOUSE(4,0):Y_M=MOUSE(5,0) :'座標取得
- 14690 FOR IMS=1 TO SWN(G) :'ボタン座標判定
- 14700 IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
- 14710 IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
- 14720 SWNO=IMS:IMS=SWN(G)+1
- 14730 NEXT IMS
- 14735 WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
- 14740 IF (SWPASS=1) OR (SWNO<>0) THEN 14830
- 14750 IF SWNO=0 THEN
- 14760 GOSUB *MCMIS:SWERC=SWERC+1 '誤指定警告表示
- 14770 IF SWERC>5 THEN
- 14780 MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG '誤指定警告音声案内
- 14790 MCN=1:GOSUB *MCDSET
- 14800 ENDIF
- 14810 ENDIF
- 14820 GOTO *クリック待ち
- 14830 SWPASS=0:SW1T=0:MCKEY=0
- 14840 RETURN
- 14850 *MCMIS
- 14860 MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
- 14870 RETURN
- 14880 '
- 14890 '
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15305 IF DCLOCKF=1 THEN GOSUB *DCLOCKD
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 15600 '////////////////////////////////////////////////////////////////////
- 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
- 15610 *DCLOCKREAD:'プログラム先頭で実施
- 15615 RESTORE *DCLOCKDATA
- 15620 FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT
- 15625 FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
- 15630 FOR DGII=1 TO 4:READ DGO(DGII):NEXT
- 15635 RETURN
- 15640 *DGCLOCK:'デジタル時計 -------------------------------
- 15645 G=6:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
- 15650 GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
- 15655 *DGMCSEL
- 15660 GOSUB *MCSELECT:'マウスボタン選択
- 15665 IF SWNO=0 THEN *DGMCSEL
- 15670 IF SWNO<0 THEN SWNO=1:'右クリックで終了
- 15675 ' end drag
- 15680 ON SWNO GOTO *DGS01,*DGS02
- 15685 *DGS02:'drag
- 15690 DCLOCKF=0
- 15692 GOSUB *MCDRAG
- 15694 DCLOCKF=1
- 15695 GOTO *DGMCSEL
- 15700 *DGS01:'end
- 15705 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 15710 DCLOCKF=0
- 15715 GOSUB *DCLOCKCLR
- 15720 SWNO=SWNOX
- 15725 RETURN
- 15730 *DCLOCKLOAD
- 15735 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15740 MOUSE 1,,,0
- 15745 LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 15750 MOUSE 1,,,1:RETURN
- 15760 *DCLOCKCLR
- 15765 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15770 RETURN
- 15775 '
- 15780 *DCLOCKD
- 15785 IF DGINIT=1 THEN 15795
- 15790 FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
- 15795 DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
- 15800 DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
- 15805 DGPT=1-DGPT
- 15810 FOR DGII=1 TO 4
- 15815 IF DG(DGII)=DGM(DGII) THEN 15840
- 15820 FOR DGJJ=1 TO 7
- 15825 IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
- 15826 IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
- 15830 PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
- 15835 NEXT DGJJ
- 15840 NEXT DGII
- 15841 IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
- 15842 PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
- 15843 PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
- 15845 FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
- 15850 RETURN
- 15855 '
- 18000 '------------------------------------------------------------------
- 18005 *HKHELP:' Copyrigit(C) T.Komura / HK2 /
- 18010 ' Version 1.0 1994.07.30 / helpプログラム /
- 18011 ' Version 2.0 1995.07.30 HK2ドラッグ対応
- 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 18016 G=5:SWNOX=SWNO:DOCDC=6:DOCBC=8
- 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
- 18026 MCN=1:GOSUB *MCDSET
- 18030 GOSUB *DOC初期表示
- 18035 *DC_MSINSEL
- 18040 SWPASS=1:GOSUB *MCSELECT:'マウスボタン選択
- 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
- 18043 IF SWNO<0 THEN SWNO=5:'右クリックで終了
- 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
- 18050 IF SWNO=5 THEN GOTO *SDC_05
- 18055 IF SWNO=6 THEN GOTO *SDC_06
- 18060 IF SWNO=7 THEN GOTO *SDC_07
- 18065 GOTO *DOCCTRL
- 18070 *DOCCTRL
- 18075 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 18080 DCCD=SWNO:GOSUB *DOC表示制御
- 18085 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 18090 GOTO *DC_MSINSEL
- 18095 *SDC_06: GOSUB *MCDRAG :GOTO *DC_MSINSEL
- 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
- 18105 *SDC_05:'終了
- 18110 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 18115 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18120 DOCCS=0:SWNO=SWNOX
- 18122 RETURN:'///////////////////////////////////////////////////
- 18125 '
- 18130 'sub routine---------------------------------------------
- 18135 *DOCTIFDSP
- 18137 MOUSE 1,,,0
- 18140 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18145 LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
- 18165 MOUSE 1,,,1:GOSUB *DOC名称表示
- 18170 RETURN
- 18175 *DOCFREAD:'helpファイル読み込み
- 18177 MCN=2:GOSUB *MCDSET
- 18180 DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
- 18185 IF EOF(1)=-1 THEN 18200
- 18190 DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
- 18195 GOTO 18185
- 18200 CLOSE #1:RETURN
- 18205 *DOC指定行表示
- 18210 GOSUB *DOCカーソル表示
- 18220 FOR DN=SDN TO EDN
- 18225 XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
- 18230 SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
- 18235 DCL=DCL+1
- 18240 NEXT DN:RETURN
- 18245 *DOC初期表示
- 18250 SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
- 18255 RETURN
- 18260 *DOC表示制御:'///////////////////////////////////////
- 18265 ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
- 18270 *DCC1:'------ 前行
- 18275 DSP=DSP-1 :IF DSP<1 THEN DSP=1 :RETURN
- 18280 SDN=DSP :GOSUB *DOC下シフト
- 18285 EDN=SDN :DCL=0 :GOSUB *DOC指定行表示 :RETURN
- 18290 *DCC2:'------ 次行
- 18295 DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
- 18300 SDN=DSP+23: GOSUB *DOC上シフト
- 18305 EDN=SDN :DCL=23:GOSUB *DOC指定行表示 :RETURN
- 18310 *DCC3:'------ 前頁
- 18315 DSP=DSP-24:IF DSP<1 THEN DSP=1
- 18320 GOTO *DCC51
- 18325 *DCC4:'------ 次頁
- 18330 DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18335 GOTO *DCC51
- 18340 *DCC5:'------ カーソル指定
- 18345 DSP=((INT(DOCN*DOCR))\24)*24+1
- 18350 IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18355 *DCC51
- 18360 SDN=DSP :EDN=SDN+23
- 18365 IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
- 18370 LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
- 18375 DCL=0:GOSUB *DOC指定行表示 :RETURN
- 18380 '------------------------------------------------------
- 18385 *DOC上シフト
- 18386 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18390 GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
- 18395 LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
- 18400 PUT@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18405 RETURN
- 18410 *DOC下シフト
- 18411 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18415 GET@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18420 LINE (X1,Y1 )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
- 18425 PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
- 18430 RETURN
- 18435 *DOCカーソル表示
- 18440 XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
- 18445 YDC1 =W_Y1(G)+53+INT(233*((DSP-1) /DOCN))
- 18450 YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
- 18451 A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A THEN YDC2=A-1
- 18455 YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
- 18460 YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
- 18461 A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
- 18465 IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
- 18470 LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
- 18475 LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
- 18480 DSPX=DSP :RETURN
- 18485 *DOC名称表示
- 18490 XDC=W_X1(G)+427:YDC=W_Y1(G)+7
- 18495 DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
- 18500 SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
- 18505 RETURN
- 18810 *DC_他エリア判定
- 18830 IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
- 18835 IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
- 18840 DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
- 18845 RETURN
- 18850 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19355 LINE(0,465)-(639,479),PSET,0,BF
- 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LINE(0,465)-(639,479),PSET,0,BF
- 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "HKANLY.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20110 LOAD@ TIFDRV$+"\HK2ANL.TIF",(0,0)
- 20120 DEF FONT "システム 12ドット"
- 20140 G=1:B=4:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 20145 ' INTERVAL ON
- 20155 GET@A(0,55)-(639,465),ANLW#
- 20160 RETURN
- 20190 '
- 20200 *分析年月表示
- 20205 G=2:DEF FONT "システム 16ドット"
- 20210 SRYR$=RIGHT$(STR$(SRYR),4)
- 20215 NBN=4:NBA$=SRYR$:GOSUB *数字漢字変換:KYR$=NBK$
- 20220 SRMN$=RIGHT$(STR$(100+SRMN),2)
- 20225 NBN=2:NBA$=SRMN$:GOSUB *数字漢字変換:KMN$=NBK$
- 20250 Y=W_Y1(G)+31+(ANLIN-1)*23
- 20260 LINE(W_X1(G)+ 89,Y)-(W_X1(G)+ 89+16*4,Y+15),PSET,%8,BF
- 20265 SYMBOL(W_X1(G)+ 89,Y),KYR$,1,1,7
- 20270 LINE(W_X1(G)+225,Y)-(W_X1(G)+225+16*2,Y+15),PSET,%8,BF
- 20275 SYMBOL(W_X1(G)+225,Y),KMN$,1,1,7
- 20276 DEF FONT "システム 12ドット"
- 20280 RETURN
- 20290 '
- 20300 *モード選択
- 20304 SMODSEL=0
- 20305 G=3:SWNOX=SWNO:SMODC=7:GOSUB *分析モード表示
- 20310 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20315 MOUSE 1,,,0
- 20320 LOAD@ TIFDRV$+"\HK2ANLc.tif",(W_X1(G),W_Y1(G))
- 20325 MOUSE 1,,,1
- 20350 SWPASS=0:GOSUB *MCSELECT
- 20360 IF SWNO<0 THEN SWNO=1
- 20362 IF SWNO=2 THEN GOSUB *MCDRAG:GOTO 20350
- 20364 IF SWNO=0 THEN GOTO 20350
- 20366 IF SWNO=1 THEN 20420
- 20368 '
- 20380 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 20390 SMODE=SWNO-2:SMODSEL=1:WAIT SWAIT/2
- 20400 SMODC=15:GOSUB *分析モード表示
- 20410 GOTO 20450
- 20420 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 20450 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20455 SWNO=SWNOX
- 20460 RETURN
- 20490 '
- 20590 '
- 20600 *分析モード表示
- 20620 LINE(126,34)-(236,47),PSET,0,BF
- 20630 SYMBOL(126,35),SMODE$(SMODE),.75!,.75!,%SMODC
- 20640 RETURN
- 20650 *分析結果画面消去
- 20660 PUT@A(0,55)-(639,465),ANLW#
- 20670 RETURN
- 20690 '
- 20700 *分析条件枠表示
- 20705 G=2
- 20710 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20715 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2ANLS.TIF",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 20720 SYMBOL(W_X1(G)+89,W_Y1(G)+9),SMODE$(SMODE),.75!,.75!,0
- 20722 FOR II=1 TO 15:IF II>3 AND II<8 THEN C=1 ELSE C=0
- 20724 X=W_X1(G)+90+46*INT((II-1)/3):Y=W_Y1(G)+84+17*((II-1) MOD 3)
- 20726 SYMBOL(X,Y),CFI$(II),.75!,.75!,C
- 20728 NEXT II
- 20730 FOR II=1 TO 3
- 20732 IF SMOPT(SMODE,II)=0 THEN 20738
- 20733 IF II=3 THEN YO=39 ELSE YO=33
- 20734 SYMBOL(W_X1(G)+15,W_Y1(G)+YO+(II-1)*23),"●",.75!,.75!,7
- 20738 NEXT II
- 20740 RETURN
- 20750 *分析条件枠消去
- 20760 FOR II=1 TO 5
- 20762 LOCATE 28,9+II-1:PRINT SPACE$(40);
- 20764 NEXT II
- 20770 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20785 RETURN
- 20790 '
- 20800 *分析条件読み込み
- 20805 ' MESN=4:GOSUB *MESDSP
- 20810 GOSUB *ANLSGET
- 20820 SRYR=SR1YR:SRMN=SR1MN:ANLIN=1:GOSUB *分析年月表示
- 20825 YRS=SRYR:MNS=SRMN
- 20830 SRYR=SR2YR:SRMN=SR2MN:ANLIN=2:GOSUB *分析年月表示
- 20835 YRE=SRYR:MNE=SRMN
- 20870 SX8=0:SX8X=SX8:SX$(8)=SPACE$(2):SITM=0
- 20890 RETURN
- 20895 '
- 20900 *分析条件保存
- 20905 ' MESN=5:GOSUB *MESDSP
- 20910 GOSUB *ANLSPUT
- 20920 RETURN
- 20930 '
- 21000 *分析条件設定
- 21005 SWNOX=SWNO
- 21010 GOSUB *分析条件枠表示
- 21020 GOSUB *分析条件読み込み
- 21030 MESN=3:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21040 G=2:GOSUB *MCSELECT
- 21045 IF SWNO<0 THEN SWNO=2
- 21050 IF SWNO>11 THEN *ANLS項目選択
- 21055 IF SWNO=11 THEN GOSUB *MCDRAG:GOTO 21040
- 21060 ON SWNO GOTO *SI01,*SI02,*SI03,*SI04,*SI05,*SI06,*SI07,*SI08,*SI09,*SI10
- 21070 '//////////////////////////////////////////////////////////////
- 21080 *SI03:YDEF=+1:MDEF= 0:GOTO 21120
- 21090 *SI04:YDEF=-1:MDEF= 0:GOTO 21120
- 21100 *SI05:YDEF= 0:MDEF=+1:GOTO 21120
- 21110 *SI06:YDEF= 0:MDEF=-1:GOTO 21120
- 21120 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21130 ANLIN=1:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21170
- 21140 YR=SR1YR:MN=SR1MN:DDEF=0:GOSUB *年月日変更:SR1YR=YR:SR1MN=MN
- 21150 SX$(1)=YR$:SX$(2)=MN$:YRS=YR:MNS=MN
- 21160 SRYR=SR1YR:SRMN=SR1MN:GOSUB *分析年月表示
- 21170 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21180 GOTO 21040
- 21190 *SI07:YDEF=+1:MDEF= 0:GOTO 21230
- 21200 *SI08:YDEF=-1:MDEF= 0:GOTO 21230
- 21210 *SI09:YDEF= 0:MDEF=+1:GOTO 21230
- 21220 *SI10:YDEF= 0:MDEF=-1:GOTO 21230
- 21230 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21240 ANLIN=2:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21280
- 21250 YR=SR2YR:MN=SR2MN:DDEF=0:GOSUB *年月日変更:SR2YR=YR:SR2MN=MN
- 21260 SX$(3)=YR$:SX$(4)=MN$:YRE=YR:MNE=MN
- 21270 SRYR=SR2YR:SRMN=SR2MN:GOSUB *分析年月表示
- 21280 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21290 GOTO 21040
- 21300 *ANLS項目選択
- 21310 ANLIN=3:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21370
- 21320 SX8=SWNO:IF SX8X=0 THEN 21340
- 21330 G=2:B=SX8X:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21340 G=2:B=SX8 :BST(G,B)=1:GOSUB *BTN_ONOFF
- 21350 SX8X=SX8
- 21360 SX$(8)=RIGHT$(STR$(SX8-11),2):SITM=VAL(SX$(8))
- 21370 GOTO 21040
- 21380 *SELERR
- 21390 MESN=6:GOSUB *MESDSP:MESN=13:GOSUB *SNDMSG
- 21400 FOR II=1 TO 5000:NEXT II
- 21410 MESN=3:GOSUB *MESDSP
- 21420 RETURN
- 21430 *SI01'
- 21440 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21450 GOSUB *分析条件合理性判定
- 21460 IF ANLCDF=0 THEN *SIRETRY
- 21470 GOTO *SIEND
- 21540 *SIRETRY
- 21550 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21560 GOTO 21040
- 21570 *SI02'
- 21580 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21590 ANLCAN=1
- 21620 GOTO 21660
- 21630 *SIEND
- 21640 ANLCAN=0
- 21650 GOSUB *分析条件保存
- 21660 GOSUB *分析条件枠消去
- 21665 SWNO=SWNOX
- 21670 RETURN
- 21730 '
- 21740 *分析条件表示
- 21745 IF SMOPT(SMODE,3)=0 THEN 21760
- 21748 LINE(123,60)-(255,75),PSET,1,BF
- 21750 SYMBOL(128,62),"分析項目:",.75!,.75!,7,,,&H01
- 21755 SYMBOL(198,62),ITEM$(SITM),.75!,.75!,0,,,&H01
- 21760 IF SMOPT(SMODE,2)=0 THEN 21780
- 21770 ANLYM$=SX$(1)+"."+SX$(2)+"→"+SX$(3)+"."+SX$(4):GOTO 21790
- 21780 ANLYM$=SX$(1)+"."+SX$(2)+"→"+SX$(1)+"."+SX$(2)
- 21790 LINE(430,36)-(530,48),PSET,%8,BF
- 21795 SYMBOL(432,37),ANLYM$,.75!,.75!,4
- 21800 RETURN
- 21810 '
- 21820 *分析条件消去
- 21825 PUT@A(0,55)-(639,465),ANLW#
- 21830 LINE(430,36)-(530,48),PSET,%8,BF
- 21840 RETURN
- 21850 '
- 21860 *分析年月日更新
- 21870 'IF SMODE=4 THEN ANLCNT=0:RETURN
- 21880 YR=YRM:MN=MNM:YDEF=0:MDEF=+1:DDEF=0
- 21890 GOSUB *年月日変更
- 21900 IF (YR*12+MN)<=(YRE*12+MNE) THEN 21920
- 21910 ANLCNT=0:RETURN
- 21920 IYM$=YR$+MN$
- 21930 ANLCNT=1
- 21940 RETURN
- 21950 '
- 22000 *AN01:'//////////////////// [月間合計額推移]
- 22005 MCN=2:GOSUB *MCDSET
- 22010 X0=88:Y0=128:XP=44:YP=12:LINEC=5
- 22021 FOR II=1 TO 23 STEP 2
- 22022 LINE(X0,Y0+YP*II+1)-(X0+XP*11,Y0+YP*(II+1)),PSET,%3,BF
- 22023 NEXT II
- 22024 FOR II=1 TO 10
- 22025 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*24),PSET,%LINEC,,&HAAAA
- 22026 NEXT II
- 22027 LINE(X0,Y0)-(X0+XP*11,Y0),PSET,%LINEC
- 22028 LINE(X0,Y0)-(X0,Y0+YP*24),PSET,%LINEC
- 22030 SYMBOL(44,116),"年.月",.75!,.75!,%15
- 22035 SYMBOL(578,116),"[\]",.75!,.75!,%15
- 22100 '-------------------- データ読み込み
- 22105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 22110 SCN=1:GOSUB *グラフデータ初期化
- 22120 IYM$=YRS$+MNS$:GDN=1
- 22125 GOSUB *ITM変換
- 22130 GOSUB *統計データ読みだし
- 22132 GDYM$=YRM$+"."+MNM$
- 22135 SYMBOL(X0-60,Y0+YP*(GDN-1)+2),GDYM$,.75!,.75!,7,,,,1
- 22140 IF FIDX=0 THEN 22160
- 22150 GDT#(1,GDN)=MX#(GITM)
- 22155 TGDT#=TGDT#+GDT#(1,GDN)
- 22160 GOSUB *分析年月日更新
- 22170 IF ANLCNT=0 THEN 22200
- 22180 GDN=GDN+1:GOTO 22130
- 22200 '-------------------- グラフ作成
- 22210 GDMAX=GDN
- 22220 GOSUB *スケール検出
- 22230 FOR II=0 TO 10 STEP 2
- 22232 SCAL$=LEFT$(STR$((SCAL#(1)/10)*II)+SPACE$(8),8)
- 22234 SYMBOL(X0+XP*II-6,Y0-12),SCAL$,.75!,.75!,7
- 22236 NEXT II
- 22238 MESH$=MESH$(13)
- 22240 FOR GDN=1 TO GDMAX
- 22250 XG=X0+(GDT#(1,GDN)/SCAL#(1))*XP*10
- 22260 LINE(X0,Y0+YP*GDN-10)-(XG,Y0+YP*GDN-1),PSET,0,BF,MESH$
- 22270 SYMBOL(XG,Y0+YP*GDN-10),STR$(GDT#(1,GDN)),.75!,.75!,6,,,&H02
- 22280 NEXT GDN
- 22290 LINE(257,60)-(405,75),PSET,7,BF
- 22300 SYMBOL(263,62),"総合計:\"+STR$(TGDT#),.75!,.75!,0,,,&H01
- 22470 GOSUB *画面フラッシュ
- 22475 MCN=1:GOSUB *MCDSET
- 22480 RETURN
- 22490 '
- 22500 *AN02:'//////////////////// [月間合計額累積]
- 22505 MCN=2:GOSUB *MCDSET
- 22510 X0=88:Y0=372:XP=20:YP=-24:LINEC=5
- 22520 LINE(X0,Y0)-(X0+XP*24,Y0),PSET,%LINEC
- 22521 LINE(X0-12,Y0+8)-(X0+XP*24-12,Y0+8),PSET,%LINEC
- 22525 LINE(X0,Y0)-(X0,Y0+YP*10),PSET,%LINEC
- 22526 LINE(X0-12,Y0+8)-(X0-12,Y0+YP*10+8),PSET,%LINEC
- 22530 FOR II=1 TO 24
- 22532 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,%LINEC,,&HCCCC
- 22533 LINE(X0+XP*II,Y0)-(X0+XP*II-12,Y0+8),PSET,%LINEC
- 22534 NEXT II
- 22536 FOR II=0 TO 10
- 22538 LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,%LINEC,,&HAAAA
- 22539 LINE(X0,Y0+YP*II)-(X0-12,Y0+YP*II+8),PSET,%LINEC
- 22540 NEXT II
- 22550 SYMBOL(24,108),"累積額[\]",.75!,.75!,7
- 22555 SYMBOL(40,95),"月額[\]",.75!,.75!,%5
- 22560 SYMBOL(576,372),"年.月",.75!,.75!,%5
- 22600 '-------------------- データ読み込み
- 22605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 22610 SCN=2:GOSUB *グラフデータ初期化
- 22620 IYM$=YRS$+MNS$:GDN=1
- 22625 GOSUB *ITM変換
- 22630 GOSUB *統計データ読みだし
- 22632 GDYM$=YRM$+"."+MNM$
- 22633 XS=X0+XP*(GDN-1)-16:YS=Y0+((GDN-1) MOD 3)*12+10
- 22635 SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
- 22640 IF FIDX=0 THEN 22660
- 22650 GDT#(1,GDN)=MX#(GITM)
- 22651 GDT#(2,GDN)=GDT#(2,GDN-1)+MX#(GITM)
- 22655 TGDT#=TGDT#+GDT#(1,GDN)
- 22660 GOSUB *分析年月日更新
- 22670 IF ANLCNT=0 THEN 22700
- 22680 GDN=GDN+1:GOTO 22630
- 22700 '-------------------- グラフ作成
- 22710 GDMAX=GDN
- 22720 GOSUB *スケール検出
- 22730 FOR II=0 TO 10 STEP 2
- 22732 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*II),8)
- 22733 SCAL$(2)=RIGHT$(SPACE$(8)+STR$((SCAL#(2)/10)*II),8)
- 22734 SYMBOL(X0-54,Y0-11+YP*II),SCAL$(1),.75!,.75!,%5
- 22735 SYMBOL(X0-66,Y0+YP*II),SCAL$(2),.75!,.75!,7
- 22736 NEXT II
- 22738 MESH1$=MESH$(13)
- 22739 MESH2$=MESH$(3)
- 22740 FOR GDN=1 TO GDMAX
- 22750 YG=Y0+(GDT#(1,GDN)/SCAL#(1))*YP*10
- 22755 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG),PSET,%0,BF
- 22760 LINE(X0+XP*GDN-19,Y0+2)-(X0+XP*GDN-7,YG+2),PSET,0,BF,%5
- 22765 YG=Y0+(GDT#(2,GDN)/SCAL#(2))*YP*10
- 22770 X1=X0+XP*(GDN-1)- 6:Y1=YG+4
- 22771 X2=X0+XP*(GDN )- 6:Y2=YG+4
- 22772 X3=X0+XP*(GDN )-12:Y3=YG+8
- 22773 X4=X0+XP*(GDN-1)-12:Y4=YG+8
- 22774 CONNECT(X1,Y1)-(X2,Y2)-(X3,Y3)-(X4,Y4)-(X1,Y1),7,PSET,F,MESH$(6)
- 22775 LINE(X2,Y2)-(X2,Y0+4),PSET,7
- 22776 LINE(X3,Y3)-(X3,Y0+8),PSET,7
- 22777 LINE(X4,Y4)-(X4,Y0+8),PSET,7
- 22780 NEXT GDN
- 22790 LINE(257,60)-(405,75),PSET,7,BF
- 22900 SYMBOL(263,62),"総合計:\"+STR$(TGDT#),.75!,.75!,0,,,&H01
- 22970 GOSUB *画面フラッシュ
- 22975 MCN=1:GOSUB *MCDSET
- 22980 RETURN
- 22990 '
- 23000 *AN03:'//////////////////// [日別項目別変動]
- 23005 MCN=2:GOSUB *MCDSET
- 23010 X0=52:Y0=280:XP=3:YP=-12:YO=150:LINEC=5
- 23011 DATA 100000,100000,100000, 10000, 10000
- 23012 DATA 2000, 10000, 20000, 10000, 10000
- 23013 DATA 10000, 10000, 10000, 10000, 50000
- 23015 RESTORE 23011:FOR II=2 TO SITM:READ SCAL#(1):NEXT II
- 23020 FOR II=0 TO 1:Y0X=Y0+YO*II
- 23022 LINE(X0,Y0X)-(X0+XP*31*6,Y0X),PSET,%LINEC
- 23024 LINE(X0,Y0X)-(X0,Y0X+YP*10),PSET,%LINEC
- 23030 FOR JJ=1 TO 10
- 23032 LINE(X0,Y0+YO*II+YP*JJ)-(X0+XP*31*6,Y0+YO*II+YP*JJ),PSET,%LINEC,,&HAAAA
- 23034 NEXT JJ
- 23040 FOR JJ=0 TO 31*6 STEP 31
- 23041 LINE(X0+XP*JJ,Y0X)-(X0+XP*JJ,Y0X+YP*10),PSET,%LINEC
- 23042 LINE(X0+XP*(JJ+10),Y0X)-(X0+XP*(JJ+10),Y0X+YP*10),PSET,%LINEC,,&HAAAA
- 23043 LINE(X0+XP*(JJ+20),Y0X)-(X0+XP*(JJ+20),Y0X+YP*10),PSET,%LINEC,,&HAAAA
- 23045 NEXT JJ
- 23050 FOR JJ=0 TO 10 STEP 2
- 23052 SCAL$=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*JJ),8)
- 23054 SYMBOL(X0-50,Y0X+YP*JJ-6),SCAL$,.75!,.75!,7
- 23056 NEXT JJ
- 23058 NEXT II
- 23060 LINE(257,60)-(348,75),PSET,7,BF
- 23061 LINE(350,60)-(630,75),PSET,7,BF
- 23063 LINE(123,77)-(630,110),PSET,%6,BF
- 23064 LINE(20,60)-(121,110),PSET,%5,BF
- 23066 SYMBOL(129,81),"出来事:",.75!,.75!,0,,,&H01,4
- 23100 '-------------------- データ読み込み
- 23105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 23110 FOR II=1 TO 366:GDYY=0:GDYM$="":NEXT II
- 23120 IYM$=YRS$+MNS$:GDN=1
- 23125 GOSUB *ITM変換
- 23130 GOSUB *HKISRC
- 23132 GDYM$=YRM$+"."+MNM$
- 23133 XS=X0+((GDN-1) MOD (31*6))*XP+8:YS=Y0+INT((GDN-1)/(31*6))*YO+4
- 23135 SYMBOL(XS,YS),GDYM$,.75!,.75!,%6,,,&H01,1
- 23140 IF FIDX=0 THEN 23160
- 23141 FOR RDY=1 TO 31
- 23145 TCALF=0:GOSUB *HKDGET
- 23150 GDYY(GDN)=DYN#(GITM)
- 23151 GDYM$(GDN)=YRM$+MNM$+RIGHT$(STR$(100+RDY),2)+DRM$(GITM)
- 23152 GDYE$(GDN)=DEV$
- 23153 GOSUB *AN03グラフ作成
- 23156 GDN=GDN+1
- 23158 NEXT RDY
- 23160 GOSUB *分析年月日更新
- 23170 IF ANLCNT=0 THEN 23200
- 23180 GOTO 23130
- 23200 '-------------------- データ読み取り
- 23202 GOSUB *画面フラッシュ
- 23203 MCN=1:GOSUB *MCDSET:SWNOX=SWNO
- 23205 GDN=GDN-1:'TBS=1:GOSUB *AN03グラフ読み取り
- 23210 MESN=21:GOSUB *MESDSP:MESN=18:GOSUB *SNDMSG
- 23220 SWPASS=1:G=1:GOSUB *MCSELECT
- 23230 IF SWNO=13 THEN *AN03END
- 23235 IF SWNO=0 THEN GOSUB *シート選択判定
- 23240 IF TBS=0 THEN 23220
- 23242 IF TBS>GDN THEN 23220
- 23244 GOSUB *AN03グラフ読み取り
- 23246 GOTO 23220
- 23250 *AN03グラフ読み取り
- 23251 LINE(260,60)-(348,75),PSET,7,BF
- 23252 LINE(350,60)-(630,75),PSET,7,BF
- 23253 LINE(198,80)-(630,110),PSET,%6,BF
- 23254 LINE(20,60)-(120,110),PSET,%5,BF
- 23260 YRM$=MID$(GDYM$(TBS),1,4):YR=VAL(YRM$)
- 23261 MNM$=MID$(GDYM$(TBS),5,2):MN=VAL(MNM$)
- 23262 DYM$=MID$(GDYM$(TBS),7,2):DY=VAL(DYM$)
- 23263 RMM$=MID$(GDYM$(TBS),9,52):GOSUB *週検索
- 23264 SYMBOL(26,64),YRM$+"."+MNM$+"."+DYM$,.75!,.75!,0,,,&H01,1
- 23265 SYMBOL(26,80),"曜日[ ]",.75!,.75!,0,,,&H01,1
- 23266 IF CW=7 THEN CW=0
- 23267 IF CW=5 THEN CW=1
- 23268 SYMBOL(62,80),WKM$,.75!,.75!,CW,,,,1
- 23270 SYMBOL(262,62),"\"+STR$(GDYY(TBS)),.75!,.75!,0,,,&H01,1
- 23271 SYMBOL(352,62),RMM$,.75!,.75!,%2
- 23273 SYMBOL(200,82),LEFT$(GDYE$(TBS),64),.75!,.75!,0
- 23274 SYMBOL(200,96),RIGHT$(GDYE$(TBS),64),.75!,.75!,0
- 23290 RETURN
- 23300 *AN03グラフ作成
- 23305 SCALOV=0:SCALZR=0
- 23310 XG=X0+((GDN-1) MOD (31*6))*XP
- 23320 IF GDYY(GDN)>SCAL#(1) THEN SCALOV=1:GOTO 23326
- 23322 IF GDYY(GDN)=0 THEN SCALZR=1
- 23325 YG=Y0+INT((GDN-1)/(31*6))*YO+YP*(GDYY(GDN)/SCAL#(1))*10:GOTO 23330
- 23326 YG=Y0+INT((GDN-1)/(31*6))*YO+YP*10
- 23330 IF GDN=1 OR GDN=31*6+1 THEN 23341
- 23340 LINE(XGX+2,YGX)-(XGX+2,YG),PSET,4
- 23341 IF SCALZR=1 THEN 23343
- 23342 LINE(XG-1,YG-1)-(XG+1,YG+1),PSET,7,BF:GOTO 23345
- 23343 LINE(XG-1,YG)-(XG+1,YG),PSET,7,BF:GOTO 23350
- 23345 IF SCALOV=1 THEN LINE(XG+1,YG-2)-(XG-1,YG-1),PSET,2,B
- 23350 XGX=XG:YGX=YG
- 23360 RETURN
- 23400 *AN03END
- 23410 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 23420 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 23430 SWNO=SWNOX
- 23480 RETURN
- 23490 '
- 23500 *AN04:'//////////////////// [月間収支推移 ]
- 23505 MCN=2:GOSUB *MCDSET:LINEC=5
- 23510 X0=88:Y0=240:XP=20:YP=-12
- 23520 LINE(X0,Y0)-(X0+XP*26,Y0),PSET,%LINEC
- 23525 LINE(X0,Y0-YP*10)-(X0,Y0+YP*10),PSET,%LINEC
- 23530 FOR II=1 TO 24
- 23532 LINE(X0+XP*II,Y0-YP*10)-(X0+XP*II,Y0+YP*10),PSET,%LINEC,,&HCCCC
- 23534 NEXT II
- 23536 FOR II=-10 TO 10 STEP 1
- 23538 LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,%LINEC,,&HAAAA
- 23539 LINE(X0+XP*24.5!,Y0+YP*II)-(X0+XP*26,Y0+YP*II),PSET,%LINEC,,&HAAAA
- 23540 NEXT II
- 23550 SYMBOL(576,370),"TOTAL",.75!,.75!,7,,,&H01,1
- 23560 SYMBOL(22,124),"ヒ",1,1,7,,,&H01
- 23561 SYMBOL(24,150),"収",.75!,.75!,7,,,&H01
- 23562 SYMBOL(24,170),"入",.75!,.75!,7,,,&H01
- 23565 SYMBOL(24,300),"支",.75!,.75!,7,,,&H01
- 23566 SYMBOL(24,320),"出",.75!,.75!,7,,,&H01
- 23567 SYMBOL(22,346),"フ",1,1,7,,,&H01
- 23600 '-------------------- データ読み込み
- 23605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 23610 SCN=3:GOSUB *グラフデータ初期化
- 23620 IYM$=YRS$+MNS$:GDN=1
- 23630 GOSUB *統計データ読みだし
- 23632 GDYM$=YRM$+"."+MNM$
- 23633 XS=X0+XP*(GDN-1)-16:YS=Y0-YP*10+((GDN-1) MOD 3)*12+10
- 23635 SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
- 23640 IF FIDX=0 THEN 23660
- 23650 GDT#(1,GDN)=MX#(16)
- 23651 GDT#(2,GDN)=MX#(17)
- 23655 GDT#(3,GDN)=MX#(16)-MX#(17)
- 23656 TGDT#=TGDT#+GDT#(3,GDN)
- 23660 GOSUB *分析年月日更新
- 23670 IF ANLCNT=0 THEN 23700
- 23680 GDN=GDN+1:GOTO 23630
- 23700 '-------------------- グラフ作成
- 23710 GDMAX=GDN
- 23720 GOSUB *スケール検出
- 23725 GOSUB *スケール検出2
- 23730 FOR II=-10 TO 10 STEP 2
- 23732 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
- 23735 SYMBOL(X0-46,Y0+YP*II-3),SCAL$(1),.6!,.6!,7
- 23736 NEXT II
- 23737 MESH1$=MESH$(10)
- 23738 MESH2$=MESH$(14)
- 23739 MESH3$=MESH$(15)
- 23745 FOR GDN=1 TO GDMAX
- 23750 YG1=Y0+(GDT#(1,GDN)/SMAXW#)*YP*10
- 23751 YG2=Y0-(GDT#(2,GDN)/SMAXW#)*YP*10
- 23752 YG3=Y0+(GDT#(3,GDN)/SMAXW#)*YP*10
- 23755 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG1),PSET,0,BF,MESH1$
- 23756 LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG2),PSET,0,BF,MESH2$
- 23758 LINE(X0+XP*GDN-XP,Y0)-(X0+XP*GDN ,YG3),PSET,7,BF,MESH3$
- 23760 NEXT GDN
- 23770 YG=Y0+(TGDT#/SMAXW#)*YP*10
- 23772 LINE(X0+XP*26-XP-6,Y0)-(X0+XP*26-4,YG),PSET,7,BF,MESH3$
- 23800 LINE(430,76)-(620,92),PSET,7,BF
- 23810 IF TGDT#>=0 THEN 23815
- 23812 TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"-":GOTO 23820
- 23815 TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"+"
- 23820 SYMBOL(434,78),"収支合計: \"+TGDT$,.75!,.75!,0,,,&H01,1
- 23970 GOSUB *画面フラッシュ
- 23975 MCN=1:GOSUB *MCDSET
- 23980 RETURN
- 23990 '
- 24000 *AN05:'//////////////////// [月間日累積推移]
- 24005 MCN=2:GOSUB *MCDSET:LINEC=5
- 24010 X0=88:Y0=392:XP=12:YP=-25
- 24020 LINE(X0,Y0)-(X0+XP*32,Y0),PSET,%LINEC
- 24022 LINE(X0,Y0)-(X0,Y0+YP*10),PSET,%LINEC
- 24025 FOR II=1 TO 31:DYD=((SDAY+II-1) MOD 31):IF DYD=0 THEN DYD=31
- 24028 IF DYD<>31 THEN 24031
- 24030 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,%LINEC,,&HFFFF
- 24031 LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,%LINEC,,&HCCCC
- 24032 IF (II MOD 5)<>0 AND II<>1 THEN 24034
- 24033 SYMBOL(X0+XP*II-8,Y0+4),RIGHT$(STR$(100+DYD),2),.75!,.75!,6,,,&H01
- 24034 NEXT II
- 24035 FOR II=1 TO 10
- 24036 LINE(X0,Y0+YP*II)-(X0+XP*32,Y0+YP*II),PSET,%LINEC,,&HAAAA
- 24037 NEXT II
- 24050 SYMBOL(464,395),"[日]",.75!,.75!,%6,,,&H01
- 24060 SYMBOL(50,119),"[\]",.75!,.75!,%6,,,&H01
- 24100 '-------------------- データ読み込み
- 24105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 24110 SCN=6:GOSUB *グラフデータ初期化
- 24120 IYM$=YRS$+MNS$:GDN=1
- 24125 GOSUB *ITM変換
- 24130 GOSUB *HKISRC:GDY=0:'v1.4
- 24132 GOSUB *AN05年月表示
- 24140 YRMX=YRM:MNMX=MNM:YRMX$=YRM$:MNMX$=MNM$
- 24142 FOR RDY=SDAY TO 31:GDY=GDY+1
- 24144 GOSUB *HKDGET:GDT#(GDN,GDY)=GDT#(GDN,GDY-1)+DYN#(GITM)
- 24146 NEXT RDY
- 24148 YR=YRM:MN=MNM:YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
- 24150 IYM$=YR$+MN$:GOSUB *HKISRC
- 24152 IF FIDX=0 THEN 24162
- 24154 IF SDAY=1 THEN 24162
- 24156 FOR RDY=1 TO SDAY-1:GDY=GDY+1
- 24158 GOSUB *HKDGET:GDT#(GDN,GDY)=GDT#(GDN,GDY-1)+DYN#(GITM)
- 24160 NEXT RDY
- 24162 YRM=YRMX:MNM=MNMX:YRM$=YRMX$:MNM$=MNMX$
- 24170 GOSUB *分析年月日更新
- 24175 IF ANLCNT=0 THEN 24200
- 24180 GDN=GDN+1:GOTO 24130
- 24200 '-------------------- グラフ作成
- 24210 GDMAX=GDN
- 24220 GOSUB *スケール検出
- 24225 GOSUB *スケール検出2
- 24230 FOR II=0 TO 10
- 24232 SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
- 24235 SYMBOL(X0-52,Y0+YP*II-3),SCAL$(1),.75!,.75!,7
- 24236 NEXT II
- 24240 FOR GDN=1 TO GDMAX
- 24250 FOR GDY=1 TO 31
- 24252 GOSUB *AN5GRP
- 24270 NEXT GDY
- 24280 NEXT GDN
- 24285 GOSUB *画面フラッシュ
- 24286 MCN=1:GOSUB *MCDSET
- 24290 RETURN
- 24295 '
- 24350 *AN05年月表示
- 24355 XS0=534:YS0=142:XSP=112:YSP=16
- 24360 GDYM$=YRM$+"."+MNM$
- 24365 XS=XS0:YS=YS0+(GDN-1)*YSP
- 24370 SYMBOL(XS,YS),GDYM$,.75!,.75!,7,,,&H01,1
- 24375 LINE(XS-30,YS+4)-(XS- 8,YS+4),PSET,GDN
- 24376 LINE(XS-31,YS+3)-(XS-29,YS+5),PSET,GDN,BF
- 24377 LINE(XS- 9,YS+3)-(XS- 7,YS+5),PSET,GDN,BF
- 24380 RETURN
- 24400 *AN5GRP
- 24410 X=X0+XP*GDY:Y=Y0+(GDT#(GDN,GDY)/SMAXW#)*YP*10
- 24420 IF GDY=1 THEN 24440
- 24430 LINE(XM,YM)-(X,Y),PSET,GDN
- 24440 LINE(X-1,Y-1)-(X+1,Y+1),PSET,GDN,BF
- 24450 XM=X:YM=Y
- 24460 RETURN
- 24470 '
- 24490 '
- 24500 *AN06:'//////////////////// [項目別比率分析]
- 24505 MCN=2:GOSUB *MCDSET:LINEC=5
- 24510 X0=18:Y0=96:XP=90:YP=16
- 24520 LOAD@ TIFDRV$+"\HK2AN06.TIF",(X0-4,Y0-4)
- 24522 FOR II=1 TO 15:X=38
- 24523 IF II<4 THEN Y=114+16*(II-1):GOTO 24526
- 24524 Y=114+16*II
- 24526 SYMBOL(X,Y),CFI$(II),.75!,.75!,0,,,,2
- 24528 NEXT II
- 24570 GOSUB *AN06項目表示
- 24600 '-------------------- データ読み込み
- 24605 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 24610 SCN=1:GOSUB *グラフデータ初期化
- 24620 IYM$=YRS$+MNS$
- 24630 GOSUB *統計データ読みだし
- 24632 GDYM$=YRM$+"."+MNM$
- 24633 LINE(60*8,465)-(639,479),PSET,0,BF
- 24635 SYMBOL(60*8,465),"Access File:"+GDYM$,.75!,.75!,4
- 24640 IF FIDX=0 THEN 24660
- 24650 FOR GDN=1 TO 18
- 24651 GDT#(1,GDN)=GDT#(1,GDN)+MX#(GDN)
- 24655 NEXT GDN
- 24660 GOSUB *分析年月日更新
- 24670 IF ANLCNT=0 THEN 24700
- 24680 GOTO 24630
- 24700 '-------------------- グラフ作成
- 24710 XC0=465:YC0=297:RC=120:XG0=345:YG0=128:XGP=240:YGP=32
- 24720 FOR GDN=1 TO 15
- 24722 IF GDN>3 THEN TGDT#=GDT#(1,17) ELSE TGDT#=GDT#(1,16)
- 24724 IF GDN>3 THEN YS=Y0+YP*(GDN+1) ELSE YS=Y0+YP*GDN
- 24726 GDTC=0:GDAC=&H00:GDAP=1:GOSUB *AN06数値表示
- 24728 NEXT GDN
- 24730 TGDT#=GDT#(1,16):YS=Y0+YP*4:GDN=16 :GDAP=0
- 24731 GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
- 24732 TGDT#=GDT#(1,17):YS=Y0+YP*18:GDN=17
- 24733 GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
- 24734 TGDT#=GDT#(1,17):YS=Y0+YP*17:GDN=18
- 24735 GDTC=6:GDAC=&H01:GOSUB *AN06数値表示
- 24736 GDT#(1,19)=GDT#(1,16)-GDT#(1,17)
- 24737 GDT1$="\"+RIGHT$(SPACE$(9)+STR$(GDT#(1,19)),9)
- 24738 YS=Y0+YP*(19)
- 24739 SYMBOL(X0+XP*1+8,YS+3),GDT1$,.75!,.75!,0,,,&H01
- 24740 XM=XG0
- 24741 LINE(XG0+6,YG0+6)-(XG0+XGP+6,YG0+YGP+6),PSET,0,BF:',MESH$(18)
- 24742 LINE(XG0,YG0)-(XG0+XGP,YG0+YGP),PSET,7,B
- 24743 FOR GDN=1 TO 3:IF GDT#(1,16)=0 THEN 24747
- 24744 XG=XM+GDT#(1,GDN)/GDT#(1,16)*XGP
- 24746 LINE(XM,YG0)-(XG,YG0+YGP),PSET,0,BF,MESH$(IMSH(GDN))
- 24747 XM=XG
- 24748 NEXT GDN
- 24750 LINE(XG0,YG0-2)-(XG0+XGP,YG0-2),PSET,%LINEC
- 24751 LINE(XG0,YG0-5)-(XG0,YG0-2),PSET,%LINEC
- 24752 LINE(XG0+XGP*.5!,YG0-5)-(XG0+XGP*.5!,YG0-2),PSET,%LINEC
- 24753 LINE(XG0+XGP,YG0-5)-(XG0+XGP,YG0-2),PSET,%LINEC
- 24754 SCAL$="0"+SPACE$(19)+"50"+SPACE$(17)+"100 [%]"
- 24755 SYMBOL(XG0-3,YG0-17),SCAL$,.75!,.75!,7
- 24758 SYMBOL(436,YG0-33),"収入比率",.75!,.75!,7,,,&H01+&H02
- 24760 RGM=.75!
- 24761 CIRCLE(XC0+6,YC0+6),RC,0,,,,F,PSET:',MESH$(18)
- 24762 CIRCLE(XC0,YC0),RC,7
- 24763 FOR GDN=4 TO 15
- 24764 IF GDT#(1,GDN)=0 OR GDT#(1,17)=0 THEN 24769
- 24765 GDTX=GDT#(1,GDN)/GDT#(1,17):RGX=RGM+GDTX
- 24766 IF RGX>=1 THEN RGX=RGX-1
- 24768 CIRCLE(XC0,YC0),RC,0,,RGM,RGX,F,PSET,MESH$(IMSH(GDN))
- 24769 RGM=RGX
- 24770 IF GDTX<.05! THEN 24800
- 24771 X1=XC0+RC*1.2!*SIN(2*PI*(RGM-(GDTX/2)+.25!))-36/2
- 24772 Y1=YC0-RC*1.2!*COS(2*PI*(RGM-(GDTX/2)+.25!))-8
- 24773 X2=XC0+RC*.8!*SIN(2*PI*(RGM-(GDTX/2)+.25!))
- 24774 Y2=YC0-RC*.8!*COS(2*PI*(RGM-(GDTX/2)+.25!))
- 24783 SYMBOL(X1,Y1),CFI$(GDN),.75!,.75!,7,,,&H01+&H10
- 24784 LINE(X1,Y1+12)-(X2,Y2),XOR,7
- 24800 NEXT GDN
- 24810 CIRCLE(XC0,YC0),40,0,,,,F,PSET,7
- 24820 SYMBOL(436,289),"支出比率",.75!,.75!,0,,,&H01+&H02
- 24830 GOSUB *画面フラッシュ
- 24835 MCN=1:GOSUB *MCDSET
- 24840 RETURN
- 24845 '
- 24850 *AN06項目表示
- 24852 DATA 1,5,7,2,1,7,6,3,4,5,8,9,10,11,12
- 24855 RESTORE 24852
- 24860 FOR II=1 TO 15:READ IMSH(II)
- 24880 NEXT II
- 24890 RETURN
- 24900 *AN06数値表示
- 24902 GDT1$="\ "+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 24903 IF TGDT#=0 THEN GDT2$="計算不能":GOTO 24916
- 24904 TGDP#=GDT#(1,GDN)/TGDT#
- 24906 GOSUB *小数点表示変換
- 24916 SYMBOL(X0+XP*1+8,YS+3),GDT1$,.75!,.75!,GDTC,,,GDAC,GDAP
- 24918 SYMBOL(X0+XP*2+10,YS+3),GDT2$,.75!,.75!,GDTC,,,GDAC,GDAP
- 24920 RETURN
- 24990 '
- 25000 *AN07:'//////////////////// [エンゲル係数推移 ]
- 25005 MCN=2:GOSUB *MCDSET:LINEC=5
- 25010 X0=18:Y0=96:XP=72:YP=16
- 25020 LINE(X0-4,Y0-4)-(X0+XP*6+4,Y0+YP*20+4),PSET,7,BF
- 25022 LINE(X0,Y0)-(X0+XP*6,Y0+YP*20),PSET,0,B
- 25023 LINE(X0-1,Y0-1)-(X0+XP*6+1,Y0+YP*20+1),PSET,0,B
- 25030 FOR II=1 TO 19:LINE(X0,Y0+YP*II)-(X0+XP*6,Y0+YP*II),PSET,0:NEXT II
- 25031 PAINT (X0+1,Y0+1),%8,0
- 25032 PAINT (X0+1,Y0+YP*19+1),%7,0
- 25040 FOR II=1 TO 5:LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*20),PSET,0:NEXT II
- 25043 DATA " 年.月","支出計[A]","基支出[B]","食 費[C]"," B/A"," C/A"
- 25044 RESTORE 25043:FOR II=0 TO 5 :READ ITM$
- 25045 SYMBOL(X0+XP*II+4,Y0+2),ITM$,.75!,.75!,7,,,&H01,1
- 25046 NEXT II
- 25047 SYMBOL(36,402),"合 計",.75!,.75!,0,,,&H01,1
- 25048 LINE(X0+XP*5-24,Y0)-(X0+XP*5,Y0+YP),PSET,0,BF,MESH$(9)
- 25049 LINE(X0+XP*6-24,Y0)-(X0+XP*6,Y0+YP),PSET,0,BF,MESH$(14)
- 25050 XG0=462:YG0=112:XGP=16:YGP=16
- 25052 LINE(XG0,YG0)-(XG0+XGP*10,YG0),PSET,%LINEC
- 25053 LINE(XG0,YG0)-(XG0,YG0+YGP*19+4),PSET,%LINEC
- 25054 LINE(XG0,YG0+YGP*18)-(XG0+XGP*10,YG0+YGP*19+4),PSET,%LINEC,BF
- 25060 FOR II=1 TO 10
- 25061 LINE(XG0+XGP*II,YG0)-(XG0+XGP*II,YG0+YGP*19+4),PSET,%LINEC,,&HAAAA
- 25062 NEXT II
- 25063 FOR II=1 TO 19
- 25064 LINE(XG0,YG0+YGP*II)-(XG0+XGP*10,YG0+YGP*II),PSET,%LINEC,,&HCCCC
- 25065 NEXT II
- 25066 SYMBOL(460,100),"0 50 100",.75!,.75!,%6
- 25100 '-------------------- データ読み込み
- 25105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 25110 SCN=3:GOSUB *グラフデータ初期化
- 25115 FOR II=1 TO 3:TGDT#(II)=0:NEXT II
- 25120 IYM$=YRS$+MNS$:GDN=1
- 25130 GOSUB *統計データ読みだし
- 25132 GDYM$=YRM$+"."+MNM$
- 25133 XS=X0+4:YS=Y0+YP*GDN+2
- 25135 SYMBOL(XS,YS),GDYM$,.75!,.75!,0,,,&H01,1
- 25140 IF FIDX=0 THEN 25160
- 25150 GDT#(1,GDN)=MX#(17):GDT#(1,19)=GDT#(1,19)+MX#(17):'92.10.11
- 25151 GDT#(2,GDN)=MX#(18):GDT#(2,19)=GDT#(2,19)+MX#(18)
- 25155 GDT#(3,GDN)=MX#(4) :GDT#(3,19)=GDT#(3,19)+MX#(4)
- 25160 GOSUB *分析年月日更新
- 25170 IF ANLCNT=0 THEN 25200
- 25180 GDN=GDN+1:GOTO 25130
- 25200 '-------------------- グラフ作成
- 25210 GDMAX=GDN
- 25220 FOR GDN=1 TO GDMAX
- 25230 GOSUB *AN07グラフ作成
- 25240 NEXT GDN
- 25250 GDN=19:GOSUB *AN07グラフ作成
- 25260 GOSUB *画面フラッシュ
- 25265 MCN=1:GOSUB *MCDSET
- 25270 RETURN
- 25280 '
- 25300 *AN07グラフ作成
- 25312 GDT$(1)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 25314 GDT$(2)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(2,GDN)),8)
- 25316 GDT$(3)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(3,GDN)),8)
- 25320 IF GDT#(1,GDN)=0 THEN GDT$(4)="計算不能":GOTO 25326
- 25322 TGDP#=GDT#(2,GDN)/GDT#(1,GDN):X1OV=0
- 25323 IF TGDP#<=1 THEN X1=XG0+TGDP#*XGP*10 ELSE X1=XG0+XGP*10:X1OV=1
- 25324 GOSUB *小数点表示変換:GDT$(4)=GDT2$
- 25326 IF GDT#(1,GDN)=0 THEN GDT$(5)="計算不能":GOTO 25340
- 25328 TGDP#=GDT#(3,GDN)/GDT#(1,GDN):X2OV=0
- 25329 IF TGDP#<=1 THEN X2=XG0+TGDP#*XGP*10 ELSE X2=XG0+XGP*10:X2OV=1
- 25330 GOSUB *小数点表示変換:GDT$(5)=GDT2$
- 25340 FOR II=1 TO 5
- 25342 SYMBOL(X0+XP*II+4,Y0+YP*GDN+2),GDT$(II),.75!,.75!,0
- 25344 NEXT II
- 25345 IF GDT$(4)="計算不能" THEN 25360
- 25350 Y=YG0+YGP*(GDN-1)
- 25352 LINE(XG0,Y+2)-(X1,Y+10),PSET,0,BF,MESH$(9)
- 25353 IF X1OV=1 THEN LINE(X1,Y+2)-(X1-1,Y+10),PSET,2,BF
- 25354 LINE(XG0,Y+6)-(X2,Y+14),PSET,0,BF,MESH$(14)
- 25355 IF X2OV=1 THEN LINE(X2,Y+6)-(X2-1,Y+14),PSET,2,BF
- 25360 RETURN
- 25370 '
- 25490 '
- 25500 '*AN08:'//////////////////// [年別動向比較 ]
- 25990 '
- 26000 *AN08:'//////////////////// [月間レポート印刷 ]
- 26005 MCN=2:GOSUB *MCDSET
- 26010 GDY=0:PCMAX=31+4+14
- 26100 '-------------------- データ読み込み
- 26105 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 26120 IYM$=YRS$+MNS$:CR$=CHR$(&H0D,&H0A):FF$=CHR$(&H0C)
- 26125 SCN=2:GOSUB *グラフデータ初期化
- 26130 GOSUB *HKISRC
- 26132 GDYM$=YRM$+"."+MNM$
- 26133 PCMES$="月間レポート印刷 "+YRM$+"年"+MNM$+"月"
- 26134 PCCD=1:GOSUB *PROCD:'処理状況表示"
- 26135 PR1$="月間家計簿リスト 《"+YRM$+"年"+MNM$+"月》"
- 26136 PR2$="家計簿System HK v1.4 "+DATE$+" "+TIME$
- 26142 GOSUB *LAJ2:LPRINT PR1$+SPACE$(6)+PR2$+CR$
- 26148 '
- 26150 PR$="【出来事】"
- 26152 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26155 YRMX=YRM:MNMX=MNM:YRMX$=YRM$:MNMX$=MNM$
- 26160 FOR RDY=SDAY TO 31:GDY=GDY+1
- 26161 PCINT=1:PCCUR=GDY:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26162 GOSUB *AN08DEV
- 26164 NEXT RDY
- 26165 YR=YRM:MN=MNM:DY=RDY:GOSUB *週検索
- 26166 IF SDAY=1 THEN 26180 :'
- 26168 YR=YRM:MN=MNM:YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
- 26170 IYM$=YR$+MN$:GOSUB *HKISRC
- 26172 IF FIDX=0 THEN 26180
- 26173 FOR RDY=1 TO SDAY-1:GDY=GDY+1
- 26174 PCINT=1:PCCUR=GDY:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26176 GOSUB *AN08DEV
- 26178 NEXT RDY
- 26180 YRM=YRMX:MNM=MNMX:YRM$=YRMX$:MNM$=MNMX$
- 26198 '
- 26210 PR$="【収 入】"
- 26212 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26220 GOSUB *統計データ読みだし
- 26230 PR$= " 項目 合計金額 1日平均 最高額 比 率 日数"
- 26231 PRX$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26234 GOSUB *LAJ2:LPRINT PR$
- 26240 FOR GDN=1 TO 3
- 26241 PCINT=1:PCCUR=31+GDN:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26242 GOSUB *AN08項目印刷
- 26244 NEXT GDN:LPRINT
- 26246 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(16)),8)
- 26248 PR2#=INT(MX#(16)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26250 PR$="合 計"+" "+PR1$+" "+PR2$
- 26252 PCINT=1:PCCUR=31+4:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26254 GOSUB *LAJ2:LPRINT PR$
- 26258 '
- 26260 LPRINT
- 26270 PR$="【支 出】"
- 26272 GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
- 26280 PR$= " 項目 合計金額 1日平均 最高額 比 率 日数"
- 26281 PRX$=" 項目 合計金額 1日平均 最高額 比 率 日数"
- 26284 GOSUB *LAJ2:LPRINT PR$
- 26290 FOR GDN=4 TO 15
- 26291 PCINT=1:PCCUR=31+1+GDN:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26292 GOSUB *AN08項目印刷
- 26294 NEXT GDN:LPRINT
- 26300 GDN=18:ITEMX$=ITEM$(18+1):ITEM$(18+1)="基支出"
- 26302 GOSUB *AN08項目印刷
- 26304 ITEM$(18+1)=ITEMX$
- 26310 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(17)),8)
- 26312 PR2#=INT(MX#(17)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26314 PR$="合 計"+" "+PR1$+" "+PR2$
- 26316 GOSUB *LAJ2:LPRINT PR$
- 26318 PCINT=1:PCCUR=PCMAX:PCCD=3:GOSUB *PROCD:'処理状況表示"
- 26319 LPRINT FF$
- 26320 '
- 26340 PCCD=2:GOSUB *PROCD:'処理状況表示"
- 26350 GOSUB *画面フラッシュ
- 26355 MCN=1:GOSUB *MCDSET
- 26360 RETURN
- 26380 '
- 26400 *AN08分析
- 26410 FOR GDN=1 TO 18
- 26412 IF DYN#(GDN)<>0 THEN GDT#(2,GDN)=GDT#(2,GDN)+1
- 26414 IF DYN#(GDN)>GDT#(1,GDN) THEN GDT#(1,GDN)=DYN#(GDN)
- 26416 NEXT GDN
- 26420 RETURN
- 26425 '
- 26430 *AN08項目印刷
- 26432 PR1$=RIGHT$(SPACE$(8)+STR$(MX#(GDN)),8)
- 26434 PR2#=INT(MX#(GDN)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
- 26436 PR3$=RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
- 26438 TGDP#=MX#(GDN)/MX#(16):GOSUB *小数点表示変換:PR4$=GDT2$
- 26440 PR5$=RIGHT$(STR$(GDT#(2,GDN)),2)
- 26442 PR$=ITEM$(GDN+1)+" "+PR1$+" "+PR2$+" "+PR3$+" "+PR4$+" "+PR5$
- 26444 COLOR 0:PRINT SPACE$(4)+PR$
- 26446 GOSUB *LAJ2:LPRINT PR$
- 26448 RETURN
- 26449 '
- 26450 *AN08DEV
- 26452 TCALF=0:GOSUB *HKDGET:GOSUB *AN08分析
- 26454 YR=YRM:MN=MNM:DY=RDY:GOSUB *週検索
- 26456 IF RDY>MNDN THEN PRINT:LPRINT:GOTO 26462
- 26458 PR$=RIGHT$(STR$(100+RDY),2)+"("+WKM$+") "+LEFT$(DEV$,64)
- 26460 PRINT SPACE$(4)+PR$:GOSUB *LAJ:LPRINT PR$
- 26462 RETURN
- 26464 '
- 26490 '
- 26500 *AN09:'//////////////////// [総計演算処理 ]
- 26505 GOSUB *分析結果画面消去
- 26520 GOSUB *HKIOPN:CLOSE :TTLCF=0
- 26530 RI=1 :GOSUB *HKIGET:SX$(1)=YRM$:SX$(2)=MNM$
- 26540 RI=IR:GOSUB *HKIGET:SX$(3)=YRM$:SX$(4)=MNM$
- 26550 GOSUB *分析条件表示
- 26555 MESN=23:GOSUB *MESDSP
- 26560 CMES$="統計データオールクリア実行":GOSUB *確認2
- 26565 ON CAUNO GOTO 26570,26580
- 26570 TTLCF=1
- 26580 MESN=20:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 26590 MCN=2:GOSUB *MCDSET
- 26595 PCCD=1:PCMES$="統計演算処理実行中" :GOSUB *PROCD:'処理状況表示
- 26600 FOR LOOP=1 TO IR
- 26610 RI=LOOP:GOSUB *HKIGET
- 26620 PCINT=1:PCMAX=IR:PCCUR=LOOP:PCCD=3:GOSUB *PROCD:'処理状況表示
- 26640 IF TTLCF=1 THEN 26670
- 26650 IF RIGHT$(IMAK$,1)<>" " THEN 26720
- 26670 GOSUB *HKTCAL
- 26672 RMN=MNM:SDAYC=1:GOSUB *HKTPUT
- 26675 GOSUB *HKTCALB
- 26680 RMN=MNM:SDAYC=0:GOSUB *HKTPUT
- 26685 MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
- 26720 NEXT LOOP
- 26725 PCCD=2:GOSUB *PROCD:'処理状況表示
- 26730 ' GOSUB *分析結果画面消去
- 26740 MCN=1:GOSUB *MCDSET
- 26750 RETURN
- 26990 '
- 27000 *AN10:'//////////////////// [
- 27500 *AN11:'//////////////////// [
- 28000 *AN12:'//////////////////// [
- 28500 *AN13:'//////////////////// [
- 29000 *AN14:'//////////////////// [
- 29500 *AN15:'//////////////////// [
- 29990 '
- 30000 *分析条件合理性判定
- 30020 YRS$=RIGHT$(STR$(10000+YRS),4)
- 30030 MNS$=RIGHT$(STR$(100+MNS),2):IYM$=YRS$+MNS$:GOSUB *HKISRC
- 30040 IF FIDX=0 THEN MESN=15:GOSUB *VALERR :GOTO 30160:'NG
- 30050 IF SMOPT(SMODE,2)=0 THEN 30110:'?
- 30060 YRE$=RIGHT$(STR$(10000+YRE),4)
- 30070 MNE$=RIGHT$(STR$(100+MNE),2):IYM$=YRE$+MNE$:GOSUB *HKISRC
- 30080 IF FIDX=0 THEN MESN=16:GOSUB *VALERR :GOTO 30160:'NG
- 30090 IF (YRS*12+MNS)<=(YRE*12+MNE) THEN 30102:'?
- 30100 MESN=7 :GOSUB *VALERR :GOTO 30160:'NG
- 30102 IF (YRE*12+MNE)-(YRS*12+MNS)<=SMOPT(SMODE,2)-1 THEN 30110:'?
- 30103 ASMES$="★★分析期間範囲:"+STR$(SMOPT(SMODE,2))+"か月以内"
- 30104 MESN=8 :GOSUB *VALERR:GOTO 30160:'NG
- 30110 IF SMOPT(SMODE,3)=0 THEN 30150:'OK
- 30120 IF SITM=1 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30121 IF SITM=20 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30125 IF SITM=0 THEN MESN=11:GOSUB *VALERR :GOTO 30160:'NG
- 30130 IF SMOPT(SMODE,3)=1 THEN 30150:'OK
- 30140 IF SITM>16 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
- 30150 ANLCDF=1:RETURN:'Good !!
- 30160 ANLCDF=0:RETURN:'No Good!
- 30170 *VALERR
- 30175 GOSUB *MESDSP:IF ASMES$="" THEN MESN=25:GOSUB *SNDMSG:GOTO 30185
- 30176 CMES$=ASMES$:GOSUB *確認2
- 30185 MESN=3:GOSUB *MESDSP:ASMES$=""
- 30190 RETURN
- 30195 '
- 30200 *スケール検出
- 30210 FOR II=1 TO SCN:SMAX#(II)=0:NEXT II
- 30220 FOR II=1 TO SCN:FOR JJ=1 TO 31
- 30230 IF ABS(GDT#(II,JJ))>SMAX#(II) THEN SMAX#(II)=ABS(GDT#(II,JJ))
- 30240 NEXT JJ:NEXT II
- 30250 DATA 1000, 1500, 2000, 2500, 5000, 7500
- 30260 DATA 10000, 15000, 20000, 25000, 50000, 75000
- 30270 DATA 100000, 150000, 200000, 250000, 500000, 750000
- 30280 DATA 1000000, 1500000, 2000000, 2500000, 5000000, 7500000
- 30290 DATA 10000000,15000000,20000000,25000000,50000000,75000000
- 30300 FOR II=1 TO SCN
- 30305 RESTORE 30250
- 30310 FOR JJ=1 TO 30:READ SCAL#(II)
- 30320 IF SCAL#(II)>SMAX#(II) THEN JJ=31:GOTO 30330
- 30330 NEXT JJ:NEXT II
- 30340 RETURN
- 30395 '
- 30400 *グラフデータ初期化
- 30410 FOR II=1 TO SCN:FOR JJ=0 TO 31
- 30420 GDT#(II,JJ)=0
- 30430 NEXT JJ:NEXT II:TGDT#=0
- 30440 RETURN
- 30450 *ITM変換
- 30460 GITM=SITM-1
- 30470 IF SITM=19 THEN GITM=17
- 30480 IF SITM=18 THEN GITM=18
- 30490 RETURN
- 30495 '
- 30500 *統計データ読みだし
- 30510 GOSUB *HKISRC
- 30520 IF FIDX=0 THEN 30580
- 30530 IF RIGHT$(IMAK$,1)<>" " THEN 30570
- 30540 GOSUB *HKTCAL
- 30545 RMN=MNM:SDAYC=1:GOSUB *HKTPUT
- 30550 GOSUB *HKTCALB
- 30555 RMN=MNM:SDAYC=0:GOSUB *HKTPUT
- 30560 MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
- 30570 RMN=MNM:GOSUB *HKTGET
- 30580 RETURN
- 30590 '
- 30600 *スケール検出2
- 30610 SMAXW#=0
- 30620 FOR II=1 TO SCN
- 30630 IF SCAL#(II)<SMAXW# THEN 30650
- 30640 SMAXN=II:SMAXW#=SCAL#(II)
- 30650 NEXT II
- 30660 RETURN
- 30670 '
- 30700 *シート選択判定
- 30710 ' X0=52:Y0=262:XP=3:YP=-10:YO=128
- 30720 IF X_M<X0-1 OR X_M>X0+XP*31*6-1 THEN 30770
- 30730 IF Y_M<Y0+YP*10 OR Y_M>Y0+YO THEN 30770
- 30735 IF Y_M>Y0 AND Y_M<Y0+YO+YP*10 THEN 30770
- 30740 IF Y_M>Y0 THEN YOFF=1 ELSE YOFF=0
- 30750 TBS=INT((X_M-(X0-1))/XP)+1+YOFF*31*6
- 30760 PLAY "O6L16EC":RETURN
- 30770 TBS=0:MCN=3:GOSUB *MCDSET:PLAY "O7L16CE"
- 30775 WAIT SWAIT/2:MCN=1:GOSUB *MCDSET:RETURN
- 30780 '
- 30800 *画面フラッシュ
- 30810 RETURN:'FOR II=1 TO 5
- 30820 PALETTE 13,[255,160,200]
- 30825 ' PALETTE 8,[160,240,250]
- 30830 FOR JJ=1 TO 500:NEXT JJ
- 30840 PALETTE 13,[160,160,200]
- 30845 ' PALETTE 8,[ 64, 64, 64]
- 30850 FOR JJ=1 TO 300:NEXT JJ
- 30860 NEXT II
- 30870 RETURN
- 30880 '
- 30900 *小数点表示変換
- 30910 GDT21=INT(TGDP#*100)
- 30920 GDT22$=RIGHT$(STR$(INT(10000+(TGDP#*100-GDT21)*1000)),3)
- 30930 GDT21$=STR$(GDT21)+"."
- 30940 GDT2$=RIGHT$(SPACE$(5)+GDT21$+GDT22$+" %",9)
- 30950 RETURN
- 30960 '
- 31000 *LAJ :'////////// 漢字文字ピッチ縮小
- 31005 ON PRTCD+1 GOTO 31010,31015
- 31010 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H22,&H76);:RETURN
- 31015 LPRINT SPACE$(5); :RETURN
- 31040 *LAJ2 :'////////// 漢字文字ピッチ縮小2
- 31045 ON PRTCD+1 GOTO 31050,31055
- 31050 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H23,&H72);:RETURN
- 31055 LPRINT SPACE$(5); :RETURN
- 31070 '
- 31100 *SDAY表示
- 31105 RETURN'
- 31110 PUT@A(520,56)-(537,73),SDD#
- 31120 DEF FONT "システム 12ドット"
- 31130 SYMBOL(522,60),SDAY$,.75!,.75!,4
- 31140 DEF FONT "システム 16ドット"
- 31150 RETURN
- 31160 '
- 31200 '
- 31210 *ABOUT表示
- 31220 X1A=146:Y1A=150:XPA=326:YPA=100
- 31230 MOUSE 1,,,0
- 31240 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 31250 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 31260 MOUSE 1,,,1
- 31270 CMES$=ABOUT$:GOSUB *確認2
- 31280 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 31290 RETURN
- 31300 '
- 32000 *確認2
- 32010 GX=G:G=4:SWNOY=SWNO:MOUSE 1,,,0
- 32020 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),CAUT#
- 32030 LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
- 32040 PLAY "o6l4ce":MOUSE 1,,,1
- 32050 FOR II=1 TO 4
- 32060 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
- 32070 WAIT SWAIT\10+1
- 32080 LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
- 32090 WAIT SWAIT\10+1
- 32100 NEXT II
- 32110 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
- 32120 MESN=19:GOSUB *SNDMSG:'28chr
- 32130 GOSUB *MCSELECT'ボタン選択
- 32140 IF SWNO<0 THEN SWNO=2
- 32150 IF SWNO=3 THEN 32130
- 32160 IF SWNO=0 THEN 32130
- 32170 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 32180 WAIT SWAIT\5+1
- 32190 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),CAUT#
- 32200 CAUNO=SWNO:SWNO=SWNOY:G=GX
- 32210 RETURN
- 32220 '
- 32300 *PROCD:'処理状況表示
- 32310 ON PCCD GOTO *PC01,*PC02,*PC03
- 32320 *PC01
- 32330 GET@A(150,200)-(483,256),MD_SB#
- 32340 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
- 32345 SYMBOL(226,204),PCMES$,.75!,.75!,0
- 32350 RETURN
- 32360 *PC02
- 32370 PUT@A(150,200)-(483,256),MD_SB#
- 32380 RETURN
- 32400 *PC03:' pcmax,pccur,pcint
- 32410 XP0=157:YP0=240:XPM=477:YPM=250
- 32420 IF (PCCUR MOD PCINT)<>0 THEN RETURN
- 32430 XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
- 32440 LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
- 32450 RETURN
- 32460 '
- 34000 *メッシュデータ定義
- 34005 '//////// [1]青
- 34010 MESH$(1)=CHR$(&H99,&H99,&H99,&H99)
- 34015 '//////// [2]赤
- 34020 MESH$(2)=CHR$(&HAA,&HAA,&HAA,&HAA)
- 34025 '//////// [3]ピンク
- 34030 MESH$(3)=CHR$(&HBB,&HBB,&HBB,&HBB)
- 34035 '//////// [4]緑
- 34040 MESH$(4)=CHR$(&HCC,&HCC,&HCC,&HCC)
- 34045 '//////// [5]青グレー
- 34050 MESH$(5)=CHR$(&HDD,&HDD,&HDD,&HDD)
- 34055 '//////// [6]黄色
- 34060 MESH$(6)=CHR$(&HEE,&HEE,&HEE,&HEE)
- 34065 '//////// [7]うす青
- 34070 MESH$(7)=CHR$(&H9F,&H9F,&H9F,&H9F,&HF9,&HF9,&HF9,&HF9)
- 34075 '//////// [8]うす赤
- 34080 MESH$(8)=CHR$(&HAF,&HAF,&HAF,&HAF,&HFA,&HFA,&HFA,&HFA)
- 34085 '//////// [9]うすピンク
- 34090 MESH$(9)=CHR$(&HBF,&HBF,&HBF,&HBF,&HFB,&HFB,&HFB,&HFB)
- 34095 '//////// [10]うす緑
- 34100 MESH$(10)=CHR$(&HCF,&HCF,&HCF,&HCF,&HFC,&HFC,&HFC,&HFC)
- 34105 '//////// [11]うす青グレー
- 34110 MESH$(11)=CHR$(&HDF,&HDF,&HDF,&HDF,&HFD,&HFD,&HFD,&HFD)
- 34115 '//////// [12]うす黄色
- 34120 MESH$(12)=CHR$(&HEF,&HEF,&HEF,&HEF,&HFE,&HFE,&HFE,&HFE)
- 34125 '//////// [13]オレンジ
- 34130 MESH$(13)=CHR$(&HAE,&HAE,&HAE,&HAE,&HEA,&HEA,&HEA,&HEA)
- 34135 '//////// [14]赤紫
- 34140 MESH$(14)=CHR$(&HAB,&HAB,&HAB,&HAB,&HBA,&HBA,&HBA,&HBA)
- 34145 '//////// [15]しろ斜線青
- 34150 MESH$(15)=CHR$(&HF9,&H99,&HF9,&H99,&H99,&H9F,&H99,&H9F,&H99,&HF9,&H99,&HF9,&H9F,&H99,&H9F,&H99)
- 34155 '//////// [16]しろグレー
- 34160 MESH$(16)=CHR$(&H77,&H77,&H77,&H77)
- 34165 '//////// [17]明るいしろグレー
- 34170 MESH$(17)=CHR$(&H7F,&H7F,&H7F,&H7F,&HF7,&HF7,&HF7,&HF7)
- 34175 '//////// [18]暗いしろグレー
- 34180 MESH$(18)=CHR$(&H70,&H70,&H70,&H70,&H07,&H07,&H07,&H07)
- 34185 RETURN
- 34190 '
- 34195 '
- 34200 *分析モード読み取り
- 34205 RESTORE *分析モード項目:READ MODEN
- 34210 FOR SMODE=1 TO MODEN
- 34215 READ SMODE$(SMODE)
- 34220 FOR II=1 TO 3:READ SMOPT(SMODE,II):NEXT II
- 34225 NEXT SMODE
- 34230 SMODE=1
- 34235 RESTORE *項目データ
- 34240 FOR II=1 TO 20
- 34245 READ ITEM$(II),ITEMC(II)
- 34250 IF II>1 AND II<17 THEN ITEM$(II)=CFI$(II-1)
- 34255 NEXT II
- 34260 RETURN
- 34265 '
- 34470 *数字漢字変換
- 34475 NBK$=""
- 34480 FOR INBK=1 TO NBN
- 34485 NBAX$=MID$(NBA$,INBK,1)
- 34490 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 34500
- 34495 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
- 34500 NEXT INBK
- 34505 RETURN
- 34510 '
- 34515 '
- 34520 '
- 34525 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 34530 FOR II=0 TO 15
- 34535 PALETTE II,[16*II,16*II,16*II]
- 34540 NEXT II
- 34545 FOR II=0 TO 255 STEP 5
- 34550 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 34555 PALETTE JJ,[KK,KK,KK]
- 34560 NEXT JJ
- 34565 NEXT II
- 34570 RETURN
- 34575 '
- 34670 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 DRV$=LEFT$(DATDRV$,2)
- 35010 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
- 35015 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35025 OPEN "R",#2,FLN$
- 35030 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35035 IR=LOF(2)
- 35040 RETURN
- 35045 '
- 35050 *HKDOPN:'---------- 家計簿データファイルオープン
- 35055 DRV$=LEFT$(DATDRV$,2)
- 35060 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35070
- 35065 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35070 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 35075 OPEN "R",#1,FLN$
- 35080 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 35085 AR=LOF(1)
- 35090 RETURN
- 35095 '
- 35100 *ANLSOPN:'---------- 分析条件ファイルオープン
- 35105 DRV$=LEFT$(PRGDRV$,2)
- 35110 IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 35120
- 35115 PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
- 35120 FLN$=DRV$+"(54)"+PATH$+"\ANLS.DAT"
- 35125 OPEN "R",#1,FLN$
- 35130 FIELD #1,4 AS S$(1),2 AS S$(2),4 AS S$(3),2 AS S$(4),24 AS S$(5),8 AS S$(6),8 AS S$(7),2 AS S$(8)
- 35135 RETURN
- 35140 '
- 35145 *HKTOPN:'---------- 年間統計ファイルオープン
- 35150 DRV$=LEFT$(DATDRV$,2)
- 35155 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35165
- 35160 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 35165 FLN$=DRV$+"(200)"+PATH$+"\HL"+LEFT$(IYM$,4)+"AL.DAT"
- 35170 OPEN "R",#1,FLN$
- 35175 FIELD #1,10*20 AS M$
- 35180 RETURN
- 35185 '
- 35190 *HKISRC:'---------- インデックスファイル検索
- 35195 FIDX=0
- 35200 GOSUB *HKIOPN
- 35205 FOR R=1 TO IR
- 35210 GET #2,R
- 35215 IF IYM$<>I$(1) THEN 35225
- 35220 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
- 35225 NEXT R:IF FIDX=0 THEN 35245
- 35230 GET #2,RI
- 35235 YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
- 35240 YRM=VAL(YRM$):MNM=VAL(MNM$)
- 35245 CLOSE #2
- 35250 RETURN
- 35255 '
- 35260 *HKIPUT:'---------- インデックスファイル書き込み
- 35265 GOSUB *HKIOPN
- 35270 LSET I$(1)=IYM$
- 35275 LSET I$(2)=IMAK$
- 35280 PUT #2,RI
- 35285 CLOSE #2
- 35290 RETURN
- 35295 '
- 35300 *HKDGET:'---------- 家計簿データ読み込み
- 35305 GOSUB *HKDOPN
- 35310 R=RDY
- 35315 GET #1,R
- 35320 DEV$=D$(1)
- 35325 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 35330 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
- 35335 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
- 35340 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
- 35345 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
- 35355 GOSUB *HKDCAL
- 35360 CLOSE #1
- 35365 RETURN
- 35370 '
- 35375 *HKDCAL:'---------- 家計簿金額計算
- 35380 FOR II=1 TO 15:DYN#(II)=VAL(DYN$(II)):NEXT II
- 35385 IF TCALF=1 THEN TCALF=0:RETURN
- 35390 DYN#(16)=0:FOR II=1 TO 3 :DYN#(16)=DYN#(16)+DYN#(II):NEXT II
- 35395 DYN$(16)=RIGHT$(SPACE$(8)+STR$(DYN#(16)),8)
- 35400 DYN#(18)=0:FOR II=4 TO 7 :DYN#(18)=DYN#(18)+DYN#(II):NEXT II
- 35405 DYN$(18)=RIGHT$(SPACE$(8)+STR$(DYN#(18)),8)
- 35410 DYN#(17)=0:FOR II=4 TO 15:DYN#(17)=DYN#(17)+DYN#(II):NEXT II
- 35415 DYN$(17)=RIGHT$(SPACE$(8)+STR$(DYN#(17)),8)
- 35420 RETURN
- 35425 '
- 35430 *ANLSGET:'---------- 分析条件ファイル読み込み
- 35435 GOSUB *ANLSOPN
- 35440 GET #1,1
- 35445 FOR II=1 TO 8:SX$(II)=S$(II):NEXT II
- 35450 CLOSE #1
- 35455 SR1YR=VAL(SX$(1)):SR1MN=VAL(SX$(2))
- 35460 SR2YR=VAL(SX$(3)):SR2MN=VAL(SX$(4))
- 35465 RETURN
- 35470 '
- 35475 *ANLSPUT:'---------- 分析条件ファイル書き込み
- 35480 GOSUB *ANLSOPN
- 35485 FOR II=1 TO 8:LSET S$(II)=SX$(II):NEXT II
- 35490 PUT #1,1
- 35495 CLOSE #1
- 35500 RETURN
- 35505 '
- 35510 *HKTGET:'---------- 年間統計ファイル読み込み
- 35515 IF SDAYC=1 THEN GOSUB *HKTOPN ELSE GOSUB *HKTOPNB:'V1.4
- 35520 R=RMN
- 35525 GET #1,R
- 35530 FOR II=1 TO 20
- 35535 MX$(II)=MID$(M$,(II-1)*10+1,10)
- 35540 MX#(II)=VAL(MX$(II))
- 35545 NEXT II
- 35550 CLOSE #1
- 35555 RETURN
- 35560 '
- 35565 *HKTPUT:'---------- 年間統計ファイル書き込み
- 35570 IF SDAYC=1 THEN GOSUB *HKTOPN ELSE GOSUB *HKTOPNB:'V1.4
- 35575 R=RMN:MX$=SPACE$(200)
- 35580 FOR II=1 TO 20
- 35585 MX$(II)=RIGHT$(SPACE$(10)+STR$(MX#(II)),10)
- 35590 MID$(MX$,(II-1)*10+1,10)=MX$(II)
- 35595 LSET M$=MX$
- 35600 NEXT II
- 35605 PUT #1,R
- 35610 CLOSE #1
- 35615 RETURN
- 35620 '
- 35625 *HKTCAL:'---------- 年間統計ファイル演算
- 35630 LXX=POS(0):LYX=CSRLIN
- 35635 FOR II=1 TO 20:MX#(II)=0:NEXT II
- 35640 FOR RDY=1 TO 31
- 35645 TTCC=7:GOSUB *HKTCALS
- 35675 NEXT RDY
- 35680 CLOSE:LOCATE 60,23:COLOR 7:PRINT SPACE$(19);
- 35685 LOCATE LXX,LYX:RETURN
- 35690 '
- 35695 *HKIGET:'---------- インデックスデータ読みだし
- 35700 GOSUB *HKIOPN
- 35705 GET #2,RI
- 35710 IYM$=I$(1):IMAK$=I$(2)
- 35715 YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
- 35720 YRM=VAL(YRM$):MNM=VAL(MNM$)
- 35725 CLOSE #2
- 35730 RETURN
- 35735 '
- 36145 *HKTOPNB:'---------- 年間統計ファイルオープンB
- 36150 DRV$=LEFT$(DATDRV$,2)
- 36155 IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 36165
- 36160 PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
- 36165 FLN$=DRV$+"(200)"+PATH$+"\HL"+LEFT$(IYM$,4)+"BL.DAT"
- 36170 OPEN "R",#1,FLN$
- 36175 FIELD #1,10*20 AS M$
- 36180 RETURN
- 36185 '
- 36625 *HKTCALB:'---------- 年間統計ファイル演算B
- 36630 LXX=POS(0):LYX=CSRLIN
- 36632 YRMX=YRM:MNMX=MNM:YRMX$=YRM$:MNMX$=MNM$
- 36635 FOR II=1 TO 20:MX#(II)=0:NEXT II
- 36640 FOR RDY=SDAY TO 31
- 36645 TTCC=6:GOSUB *HKTCALS
- 36675 NEXT RDY
- 36680 YR=YRM:MN=MNM:YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
- 36682 IYM$=YR$+MN$:GOSUB *HKISRC
- 36690 IF FIDX=0 THEN 36775
- 36695 IF SDAY=1 THEN 36775
- 36740 FOR RDY=1 TO SDAY-1
- 36745 TTCC=6:GOSUB *HKTCALS
- 36750 NEXT RDY
- 36775 YRM=YRMX:MNM=MNMX:YRM$=YRMX$:MNM$=MNMX$
- 36776 IYM$=YRM$+MNM$:GOSUB *HKISRC
- 36780 CLOSE:LOCATE 60,23:COLOR 7:PRINT SPACE$(19);
- 36785 LOCATE LXX,LYX:RETURN
- 36790 '
- 36800 *HKTCALS:'統計ファイル演算共通sub
- 36805 LINE(60*8,465)-(639,479),PSET,0,BF
- 36806 MES$=YRM$+"."+MNM$+"."+RIGHT$(" "+STR$(RDY),2)+" 演算中"
- 36810 SYMBOL(60*8,465),MES$,.75!,.75!,TTCC
- 36815 GOSUB *HKDGET
- 36820 FOR II=1 TO 18
- 36825 MX#(II)=MX#(II)+DYN#(II)
- 36830 NEXT II
- 36835 RETURN
- 36840 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.4 1994.06.19
- 39020 ' FOR HK T.Komura
- 39030 CFLNO=0
- 39040 OPEN "R",#1,"(1)HK.CFG"
- 39050 FIELD #1,1 AS D$
- 39060 IF LOF(1)=0 THEN *CFGFE1
- 39070 CLOSE
- 39080 OPEN "I",#1,"HK.CFG"
- 39085 GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$ [0]
- 39090 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$ [1]
- 39092 FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
- 39094 FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
- 39100 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$ [2]
- 39110 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$ [3]
- 39120 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$ [4]
- 39130 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$ [5]
- 39140 GOSUB *CFGREAD :'-- SNDMF [6]
- 39150 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39160 SNDMF=VAL(RIGHT$(CFG$,1))
- 39170 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$ [7]
- 39180 GOSUB *CFGREAD :'-- SWAIT [8]
- 39190 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39200 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39210 FOR II=1 TO 15 :' [9]-[10]
- 39220 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39230 NEXT II
- 39240 GOSUB *CFGREAD :'-- DICIF [11]
- 39250 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39260 DICIF=VAL(RIGHT$(CFG$,1))
- 39270 GOSUB *CFGREAD :'-- DICSF [11]
- 39280 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39290 DICSF=VAL(RIGHT$(CFG$,1))
- 39300 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$ [12]
- 39310 GOSUB *CFGREAD :'-- taxr$ [13]
- 39320 IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
- 39330 TAXR$=RIGHT$(CFG$,LEN(CFG$)-5)
- 39340 GOSUB *CFGREAD :'-- CALCF [14]
- 39350 IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
- 39360 CALCF=VAL(RIGHT$(CFG$,1))
- 39370 GOSUB *CFGREAD :'--SDAY [15]
- 39380 IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
- 39390 SDAY=VAL(RIGHT$(CFG$,2))
- 39400 SDAY$=RIGHT$(STR$(100+SDAY),2)
- 39410 IF SDAY>0 THEN MOFF=0 ELSE MOFF=-1
- 39420 GOSUB *CFGREAD :'-- SSYMD$ [16]
- 39430 IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
- 39440 SSYMD$=RIGHT$(CFG$,8)
- 39450 CLOSE
- 39460 RETURN
- 39470 *CFGREAD:'////////////////////////////////////
- 39480 IF EOF(1)<>0 THEN *CFGFE3
- 39490 LINE INPUT #1,CFG$:CFLNO=CFLNO+1
- 39500 IF LEFT$(CFG$,1)="/" THEN 39480
- 39510 RETURN
- 39520 '------------------------------------------------------------------
- 39530 *CFGFE1
- 39540 CFE$="HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39550 GOTO *CFGFEP
- 39560 *CFGFE2
- 39570 CFE$="HK.CFGファイル 行番号"+STR$(CFLNO)+"の内容に誤りがあります。 家計簿を終了します。"
- 39580 GOTO *CFGFEP
- 39590 *CFGFE3
- 39600 CFE$="HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39610 GOTO *CFGFEP
- 39620 '-------------------------------------------------------------------
- 39630 *CFGFEP
- 39640 LOCATE 2,23:COLOR 6:PRINT CFE$;
- 39650 CLOSE :WAIT 100
- 39660 STOP
- 39670 '///////////////////////////////////////////////////////////////////
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 6 'SWGN スイッチグループ数
- 40020 '/////////////////////////////
- 40030 '-------------------- [G1] メインスイッチグループ
- 40040 ' SWN(G),SMX,SMY,SMW
- 40050 DATA 13 :'ボタン個数
- 40060 ' X1 ,X2 ,Y1 ,Y2
- 40070 DATA 000,639,000,479 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40080 DATA 000,000,000,000 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40090 '--------------------
- 40100 ' XB1 XB2 YB1 YB2
- 40110 DATA 0,123, 0, 22 ' HK2 1
- 40120 DATA 124,168, 5, 22 '記 入 2
- 40130 DATA 169,212, 5, 22 '検 索 3
- 40140 DATA 213,256, 5, 22 '分 析 4
- 40150 DATA 257,300, 5, 22 'カレンダー 5
- 40160 DATA 301,344, 5, 22 '設 定 6
- 40170 DATA 444,567, 0, 22 '日 付 7
- 40180 DATA 568,591, 0, 22 'clock 8
- 40190 DATA 592,615, 0, 22 'help 9
- 40200 DATA 616,639, 0, 22 'END 10
- 40210 '
- 40220 DATA 238,255, 34, 48 'select 11
- 40270 DATA 544,591, 28, 54 '実行 12
- 40280 DATA 592,639, 28, 54 '取消 13
- 40290 '
- 40560 '
- 41000 '-------------------- [G2] 検索条件選択スイッチグループ
- 41010 ' SWN(G),SMX,SMY,SMW
- 41020 DATA 31 :'ボタン個数
- 41030 ' X1 ,X2 ,Y1 ,Y2
- 41040 DATA 150,476,150,367 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41050 DATA 000,639,023,465 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41060 '--------------------
- 41070 ' XB1 XB2 YB1 YB2
- 41080 DATA 249,284, 6, 22 '決定-------- 1
- 41090 DATA 285,320, 6, 22 '取消-------- 2
- 41100 DATA 155,174, 30, 46 '▲---------- 3
- 41110 DATA 175,194, 30, 46 '▼---------- 4
- 41120 DATA 258,277, 30, 46 '▲---------- 5
- 41130 DATA 278,297, 30, 46 '▼---------- 6
- 41140 DATA 155,174, 53, 69 '▲---------- 7
- 41150 DATA 175,194, 53, 69 '▼---------- 8
- 41160 DATA 258,277, 53, 69 '▲---------- 9
- 41170 DATA 278,297, 53, 69 '▼----------10
- 41215 DATA 8, 21, 8, 21 'drag ----11
- 41220 '
- 41230 DATA 269,314,137,153 '出来事------12 1
- 41240 DATA 85,130, 82, 98 '給 与------13 2
- 41250 DATA 85,130, 99,115 '臨 時------14 3
- 41260 DATA 85,130,116,132 '他収入------15 4
- 41270 DATA 131,176, 82, 98 '食 費------16 5
- 41280 DATA 131,176, 99,115 '生活費------17 6
- 41290 DATA 131,176,116,132 '洗濯代------18 7
- 41300 DATA 177,222, 82, 98 '光熱費------19 8
- 41310 DATA 177,222, 99,115 '被服費------20 9
- 41320 DATA 177,222,116,132 '交際費------21 10
- 41330 DATA 223,268, 82, 98 '娯楽費------22 11
- 41340 DATA 223,268, 99,115 '酒 代------23 12
- 41350 DATA 223,268,116,132 '車維持------24 13
- 41360 DATA 269,314, 82, 98 '教育費------25 14
- 41370 DATA 269,314, 99,115 '雑 費------26 15
- 41380 DATA 269,314,116,132 '他支出------27 16
- 41390 DATA 85,130,137,153 '全収入------28 17
- 41400 DATA 131,176,137,153 '基支出------29 18
- 41410 DATA 177,222,137,153 '全支出------30 19
- 41420 DATA 223,268,137,153 '全収支------31 20
- 41430 '
- 41500 '-------------------- [G3] 分析モード選択スイッチグループ
- 41510 ' SWN(G),SMX,SMY,SMW
- 41520 DATA 11 :'ボタン個数
- 41530 ' X1 ,X2 ,Y1 ,Y2
- 41540 DATA 123,516,083,359 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41550 DATA 000,639,023,465 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41560 '--------------------
- 41570 ' XB1 XB2 YB1 YB2
- 41590 DATA 375,393, 0, 17 '取消-------- 1
- 41715 DATA 4, 17, 2, 15 'drag ---- 2
- 41730 DATA 5,132, 23,105 'an1 ------ 3
- 41740 DATA 133,260, 23,105 'an2 ------ 4
- 41750 DATA 261,388, 23,105 'an3 ------ 5
- 41760 DATA 5,132,106,188 'an4 ------ 6
- 41770 DATA 133,260,106,188 'an5 ------ 7
- 41780 DATA 261,388,106,188 'an6 ------ 8
- 41790 DATA 5,132,189,271 'an7 ------ 9
- 41800 DATA 133,260,189,271 'an8 ------ 10
- 41810 DATA 261,388,189,271 'an9 ------ 11
- 42000 '-------------------- スイッチグループ[4] 確認
- 42010 DATA 3 :'ボタン個数
- 42020 ' X1 ,X2 ,Y1 ,Y2
- 42030 DATA 106,522,258,287 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42040 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42050 '--------------------
- 42060 ' XB1 XB2 YB1 YB2
- 42070 DATA 338,369, 6, 23 ' OK 01
- 42080 DATA 370,401, 6, 23 ' NG 02
- 42090 DATA 8, 27, 5, 24 'drag
- 42100 '
- 42110 '
- 42400 '-------------------- スイッチグループ(5) Helpグループ
- 42410 DATA 6 :'ボタン個数
- 42420 ' X1 ,X2 ,Y1 ,Y2
- 42430 DATA 60,577,100,421 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42440 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42450 '
- 42460 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 42470 DATA 499,512, 25, 38 '前頁
- 42480 DATA 499,512, 39, 52 '前行
- 42490 DATA 499,512,289,302 '次行
- 42500 DATA 499,512,303,316 '次頁
- 42510 DATA 499,512, 6, 19 '終了
- 42520 DATA 6, 17, 7, 18 'drag
- 42530 '
- 42540 '-------------------- スイッチグループ[6] デジタル時計
- 42550 DATA 2 :'ボタン個数
- 42560 ' X1 ,X2 ,Y1 ,Y2
- 42570 DATA 46,607,100,306 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42580 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42590 '--------------------
- 42600 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42610 DATA 543,561, 0, 18 ' end 01
- 42620 DATA 3, 16, 3, 16 ' drag 02
- 42630 '
- 50000 *分析モード項目
- 50010 DATA 9 '10
- 50020 ' " 分析モード ",開始,終了,項目
- 50030 ' SMOPT(SMODE, [1] [2] [3] ) 0:無効
- 50040 ' 1:全項目有効
- 50050 ' 2:合計項目無効
- 50060 DATA "月間合計額推移", 1, 24, 1
- 50070 DATA "月間合計額累積", 1, 24, 1
- 50080 DATA "日別項目別変動", 1, 12, 2
- 50090 DATA "月間収支推移 ", 1, 24, 0
- 50100 DATA "月間日累積推移", 1, 6, 1
- 50110 DATA "項目別比率分析", 1, 48, 0
- 50120 DATA "エンゲル係数推移 ", 1, 18, 0
- 50130 'DATA "年別動向比較 ", 1, 48, 1
- 50140 DATA "月間レポート印刷 ", 1, 0, 0
- 50150 DATA "総計演算処理 ", 0, 0, 0
- 50160 '
- 50170 *項目データ:' SITM
- 50180 DATA "出来事",0'----- 1
- 50190 DATA " 収 1",4'----- 2
- 50200 DATA " 入 2",4'----- 3
- 50210 DATA " 3",4'----- 4
- 50220 DATA " 支 1",1'----- 5
- 50230 DATA " 出 2",1'----- 6
- 50240 DATA " 3",1'----- 7
- 50250 DATA " 4",1'----- 8
- 50260 DATA " 5",1'----- 9
- 50270 DATA " 6",1'-----10
- 50280 DATA " 7",1'-----11'
- 50290 DATA " 8",1'-----12
- 50300 DATA " 9",1'-----13
- 50310 DATA " 10",1'-----14
- 50320 DATA " 11",1'-----15
- 50330 DATA " 12",2'-----16
- 50340 DATA "全収入",2'-----17
- 50350 DATA "基支出",2'-----18
- 50360 DATA "全支出",2'-----19
- 50370 DATA "全収支",2'-----20
- 50380 '
- 51000 *DCLOCKDATA
- 51010 ' 1,2,3,4,5,6,7
- 51020 DATA 1,1,1,1,1,1,0 '0 (1)
- 51030 DATA 0,1,1,0,0,0,0 '1 ---
- 51040 DATA 1,1,0,1,1,0,1 '2 | |(2)
- 51050 DATA 1,1,1,1,0,0,1 '3 (6)|(7)| ●(8)
- 51060 DATA 0,1,1,0,0,1,1 '4 ---
- 51070 DATA 1,0,1,1,0,1,1 '5 | |(3) ●(9)
- 51080 DATA 1,0,1,1,1,1,1 '6 (5)| |
- 51090 DATA 1,1,1,0,0,0,0 '7 ---
- 51100 DATA 1,1,1,1,1,1,1 '8 (4)
- 51110 DATA 1,1,1,1,0,1,1 '9
- 51120 ' dgx,dgy
- 51130 DATA 80, 40 '(1)
- 51140 DATA 120, 70 '(2)
- 51150 DATA 110,140 '(3)
- 51160 DATA 80,180 '(4)
- 51170 DATA 40,140 '(5)
- 51180 DATA 50, 70 '(6)
- 51190 DATA 80,100 '(7)
- 51200 DATA 280, 80 '(8)
- 51210 DATA 280,140 '(9)
- 51220 ' ofset
- 51230 DATA 0 '1桁
- 51240 DATA 120 '2桁
- 51250 DATA 280 '3桁
- 51260 DATA 400 '4桁
- 51270 '
- 60000 ' 座標確認 DEBUG ROUTINE
- 60010 LOAD@ "e:\work\hk2\tiff\hk2proc.tif",(150,200)'
- 60020 MOUSE 0:MOUSE 1,0,0,1
- 60030 IF MOUSE(2,1)<>0 THEN STOP
- 60040 IF MOUSE(2,0)=0 THEN 60040
- 60050 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60060 LINE(0,460)-(639,479),PSET,0,BF
- 60070 SYMBOL(0,460),"X="+STR$(X_M)+" Y="+STR$(Y_M),.75!,.75!,6
- 60080 GOTO 60030
- 60090 '
- 60100 '
-